10 #ifndef DATATOOLS_DETAIL_REFLECTION_EXPORT_H 11 #define DATATOOLS_DETAIL_REFLECTION_EXPORT_H 15 #include <boost/mpl/bool.hpp> 16 #include <boost/serialization/singleton.hpp> 20 namespace reflection {
28 ::datatools::detail::reflection::implement_reflection<T> (tag);
54 namespace reflection {
83 #define DR_CLASS_EXPORT_IMPLEMENT(T) \ 84 namespace datatools { \ 86 namespace reflection { \ 88 struct init_guid< T > { \ 89 static guid_initializer< T > const & g; \ 91 guid_initializer< T > const & init_guid< T >::g = \ 92 ::boost::serialization::singleton< guid_initializer< T > > \ 93 ::get_mutable_instance().export_guid(); \ 107 #define DR_CLASS_EXPORT_KEY(T, K) \ 108 namespace datatools { \ 110 namespace reflection { \ 112 struct guid_defined< T > : boost::mpl::true_ {}; \ 114 inline const char * guid< T >(){ \ 129 #define DR_CLASS_EXPORT(T, K) \ 130 DR_CLASS_EXPORT_KEY (T, K) \ 131 DR_CLASS_EXPORT_IMPLEMENT (T) \ 136 #define DR_TYPE_EXPORT(T, K) \ 137 DR_CLASS_EXPORT (T, K) \ 140 #endif // DATATOOLS_DETAIL_REFLECTION_EXPORT_H