|
Chaste
Release::2017.1
|
Go to the documentation of this file. 79 #include <boost/version.hpp> 86 #if BOOST_VERSION < 103600 88 #ifndef CHASTE_SERIALIZATION_CPP 89 #include <boost/serialization/export.hpp> 90 #endif // CHASTE_SERIALIZATION_CPP 92 #elif BOOST_VERSION < 104100 94 #ifdef CHASTE_SERIALIZATION_CPP 96 #include <boost/serialization/export.hpp> 97 #endif // CHASTE_SERIALIZATION_CPP 101 #include <boost/serialization/extended_type_info.hpp> 102 #include <boost/serialization/export.hpp> 103 #ifdef CHASTE_SERIALIZATION_CPP 105 #endif // CHASTE_SERIALIZATION_CPP 111 #if BOOST_VERSION >= 104100 && defined(CHASTE_SERIALIZATION_CPP) 116 #undef CHASTE_CLASS_EXPORT_TEMPLATED 122 #define CHASTE_CLASS_EXPORT_TEMPLATED(T, S) \ 123 BOOST_CLASS_EXPORT_IMPLEMENT(T) 125 #undef CHASTE_CLASS_EXPORT_INTERNAL 130 #define CHASTE_CLASS_EXPORT_INTERNAL(T) \ 131 BOOST_CLASS_EXPORT_IMPLEMENT(T) 133 #endif // BOOST_VERSION >= 104100 && defined(CHASTE_SERIALIZATION_CPP) 137 #ifndef SERIALIZATIONEXPORTWRAPPER_HPP_ 139 #define SERIALIZATIONEXPORTWRAPPER_HPP_ 145 #include <boost/preprocessor/cat.hpp> 146 #include <boost/preprocessor/stringize.hpp> 149 #if BOOST_VERSION >= 104100 157 #define CHASTE_CLASS_EXPORT_TEMPLATED(T, S) \ 158 BOOST_CLASS_EXPORT_KEY(T) 164 #define CHASTE_CLASS_EXPORT_INTERNAL(T) \ 165 BOOST_CLASS_EXPORT_KEY(T) 167 #else // BOOST_VERSION < 103600 || (BOOST_VERSION >= 103800 && BOOST_VERSION < 104100) 175 #define CHASTE_CLASS_EXPORT_TEMPLATED(T, S) \ 176 BOOST_CLASS_EXPORT(T) 182 #define CHASTE_CLASS_EXPORT_INTERNAL(T) \ 183 BOOST_CLASS_EXPORT(T) 185 #endif // BOOST_VERSION >= 103600 && BOOST_VERSION < 103800 194 template<
class T>
struct pack<void (T)> {
203 #define CHASTE_EXPORT_KEY_1(CLASS, P1) \ 204 BOOST_PP_CAT(CLASS, P1) 212 #define CHASTE_EXPORT_KEY_2(CLASS, P1, P2) \ 213 BOOST_PP_CAT(BOOST_PP_CAT(CLASS, P1), P2) 222 #define CHASTE_EXPORT_KEY_3(CLASS, P1, P2, P3) \ 223 BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_CAT(CLASS, P1), P2), P3) 230 #define CHASTE_PACK_1(CLASS, P1) pack<void (CLASS< P1 >)>::type 238 #define CHASTE_PACK_2(CLASS, P1, P2) pack<void (CLASS< P1,P2 >)>::type 247 #define CHASTE_PACK_3(CLASS, P1, P2, P3) pack<void (CLASS< P1,P2,P3 >)>::type 250 #endif // SERIALIZATIONEXPORTWRAPPER_HPP_ 256 #ifdef EXPORT_TEMPLATE_CLASS3_INTERNAL 258 #undef EXPORT_TEMPLATE_CLASS3_INTERNAL 259 #undef EXPORT_TEMPLATE_CLASS2_INTERNAL 260 #undef EXPORT_TEMPLATE_CLASS1_INTERNAL 261 #undef EXPORT_TEMPLATE_CLASS_ALL_DIMS_INTERNAL 262 #undef EXPORT_TEMPLATE_CLASS_SAME_DIMS_INTERNAL 263 #endif // EXPORT_TEMPLATE_CLASS3_INTERNAL 275 #define EXPORT_TEMPLATE_CLASS3_INTERNAL(CLASS, E, S, P) \ 276 CHASTE_CLASS_EXPORT_TEMPLATED( CHASTE_PACK_3(CLASS, E, S, P), CHASTE_EXPORT_KEY_3(CLASS, E, S, P) ) 285 #define EXPORT_TEMPLATE_CLASS2_INTERNAL(CLASS, E, S) \ 286 CHASTE_CLASS_EXPORT_TEMPLATED( CHASTE_PACK_2(CLASS, E, S), CHASTE_EXPORT_KEY_2(CLASS, E, S) ) 294 #define EXPORT_TEMPLATE_CLASS1_INTERNAL(CLASS, D) \ 295 CHASTE_CLASS_EXPORT_TEMPLATED( CHASTE_PACK_1(CLASS, D), CHASTE_EXPORT_KEY_1(CLASS, D) ) 303 #define EXPORT_TEMPLATE_CLASS_ALL_DIMS_INTERNAL(CLASS) \ 304 EXPORT_TEMPLATE_CLASS2(CLASS, 1, 1) \ 305 EXPORT_TEMPLATE_CLASS2(CLASS, 1, 2) \ 306 EXPORT_TEMPLATE_CLASS2(CLASS, 1, 3) \ 307 EXPORT_TEMPLATE_CLASS2(CLASS, 2, 2) \ 308 EXPORT_TEMPLATE_CLASS2(CLASS, 2, 3) \ 309 EXPORT_TEMPLATE_CLASS2(CLASS, 3, 3) 316 #define EXPORT_TEMPLATE_CLASS_SAME_DIMS_INTERNAL(CLASS) \ 317 EXPORT_TEMPLATE_CLASS1(CLASS, 1) \ 318 EXPORT_TEMPLATE_CLASS1(CLASS, 2) \ 319 EXPORT_TEMPLATE_CLASS1(CLASS, 3) 325 #if !defined(CHASTE_CLASS_EXPORT) || defined(CHASTE_SERIALIZATION_CPP) 326 #ifdef CHASTE_SERIALIZATION_CPP 328 #undef CHASTE_CLASS_EXPORT 329 #undef EXPORT_TEMPLATE_CLASS_SAME_DIMS 330 #undef EXPORT_TEMPLATE_CLASS_ALL_DIMS 331 #undef EXPORT_TEMPLATE_CLASS1 332 #undef EXPORT_TEMPLATE_CLASS2 333 #undef EXPORT_TEMPLATE_CLASS3 334 #endif // CHASTE_SERIALIZATION_CPP 336 #if (BOOST_VERSION < 103600 && ! defined(CHASTE_SERIALIZATION_CPP)) || \ 337 (BOOST_VERSION >= 103600 && defined(CHASTE_SERIALIZATION_CPP)) || \ 338 (BOOST_VERSION >= 104100) 347 #define CHASTE_CLASS_EXPORT(T) CHASTE_CLASS_EXPORT_INTERNAL(T) 352 #define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS) EXPORT_TEMPLATE_CLASS_SAME_DIMS_INTERNAL(CLASS) 358 #define EXPORT_TEMPLATE_CLASS_ALL_DIMS(CLASS) EXPORT_TEMPLATE_CLASS_ALL_DIMS_INTERNAL(CLASS) 364 #define EXPORT_TEMPLATE_CLASS1(CLASS, D) EXPORT_TEMPLATE_CLASS1_INTERNAL(CLASS, D) 371 #define EXPORT_TEMPLATE_CLASS2(CLASS, E, S) EXPORT_TEMPLATE_CLASS2_INTERNAL(CLASS, E, S) 379 #define EXPORT_TEMPLATE_CLASS3(CLASS, E, S, P) EXPORT_TEMPLATE_CLASS3_INTERNAL(CLASS, E, S, P) 387 #define CHASTE_CLASS_EXPORT(T) 392 #define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS) 397 #define EXPORT_TEMPLATE_CLASS_ALL_DIMS(CLASS) 403 #define EXPORT_TEMPLATE_CLASS1(CLASS, D) 410 #define EXPORT_TEMPLATE_CLASS2(CLASS, E, S) 418 #define EXPORT_TEMPLATE_CLASS3(CLASS, E, S, P) 421 #endif // !defined(CHASTE_CLASS_EXPORT) || defined(CHASTE_SERIALIZATION_CPP)