
AMDG Daniel Roberts wrote:
If I nest macro calls such as:
namespace SomeNamespace { BOOST_SERIALIZATION_ASSUME_ABSTRACT(SomeClass) BOOST_CLASS_TYPE_INFO(SomeClass, extended_type_info_no_rtti<SomeClass>) BOOST_CLASS_EXPORT(SomeClass) }
inside the namespace containing the type I get a TON of compiler errors. The wackiest is that the compiler thinks boost is a namespace inside of my namespace.
Both BOOST_SERIALIZATION_ASSUME_ABSTRACT and BOOST_CLASS_TYPE_INFO specialize templates in namespace boost::serialization. Therefore they need to be placed in the global namespace.
Things improve (not fully tested) if I move the macros outside of my namespace and qualify the type with namespace name:
BOOST_SERIALIZATION_ASSUME_ABSTRACT(SomeNamespace::SomeClass) BOOST_CLASS_TYPE_INFO(SomeNamespace::SomeClass, extended_type_info_no_rttiSomeNamespace::SomeClass) BOOST_CLASS_EXPORT(SomeNamespace::SomeClass)
Can someone explain please?
In Christ, Steven Watanabe