Go to the documentation of this file.
36 #ifndef CLASSISABSTRACT_HPP_
37 #define CLASSISABSTRACT_HPP_
76 #include <boost/version.hpp>
78 #if BOOST_VERSION >= 103600
81 #include <boost/serialization/assume_abstract.hpp>
88 #define CLASS_IS_ABSTRACT(T) BOOST_SERIALIZATION_ASSUME_ABSTRACT(T)
94 #define TEMPLATED_CLASS_IS_ABSTRACT_DEFN \
95 : boost::true_type {};
100 #include <boost/serialization/is_abstract.hpp>
107 #define CLASS_IS_ABSTRACT(T) BOOST_IS_ABSTRACT(T)
113 #define TEMPLATED_CLASS_IS_ABSTRACT_DEFN \
115 typedef mpl::bool_<true> type; \
116 BOOST_STATIC_CONSTANT(bool, value = true); \
119 #endif // BOOST_VERSION >= 103600
126 #define TEMPLATED_CLASS_IS_ABSTRACT_1_UNSIGNED(T) \
128 namespace serialization { \
129 template<unsigned U> \
130 struct is_abstract<T<U> > \
131 TEMPLATED_CLASS_IS_ABSTRACT_DEFN \
132 template<unsigned U> \
133 struct is_abstract<const T<U> > \
134 TEMPLATED_CLASS_IS_ABSTRACT_DEFN \
142 #define TEMPLATED_CLASS_IS_ABSTRACT_2_UNSIGNED(T) \
144 namespace serialization { \
145 template<unsigned U1, unsigned U2> \
146 struct is_abstract<T<U1, U2> > \
147 TEMPLATED_CLASS_IS_ABSTRACT_DEFN \
148 template<unsigned U1, unsigned U2> \
149 struct is_abstract<const T<U1, U2> > \
150 TEMPLATED_CLASS_IS_ABSTRACT_DEFN \
158 #define TEMPLATED_CLASS_IS_ABSTRACT_3_UNSIGNED(T) \
160 namespace serialization { \
161 template<unsigned U1, unsigned U2, unsigned U3> \
162 struct is_abstract<T<U1, U2, U3> > \
163 TEMPLATED_CLASS_IS_ABSTRACT_DEFN \
164 template<unsigned U1, unsigned U2, unsigned U3> \
165 struct is_abstract<const T<U1, U2, U3> > \
166 TEMPLATED_CLASS_IS_ABSTRACT_DEFN \