template < class eArchive >
void
MtxAnsFunctionIntegerPipe::serialize( eArchive& aArchive, const unsigned int
aVersion )
{
aArchive
& BOOST_SERIALIZATION_BASE_OBJECT_NVP( MtxAnmFunctionTpl<int> )
;
aArchive & BOOST_SERIALIZATION_NVP( mVariable ) ;
}
#define
BOOST_SERIALIZATION_BASE_OBJECT_NVP(name)
\
boost::serialization::make_nvp(
\
BOOST_PP_STRINGIZE(name),
\
boost::serialization::base_object<name
>(*this)
\
The stringized class name ("MtxAnmFunctionTpl<int>") generate a non valid XML tag name (due to < > )
There is no
BOOST_SERIALIZATION_BASE_OBJECT_NVP2( type, tag) macro
(as
BOOST_CLASS_EXPORT_KEY2(class, key) for BOOST_EXPORT_CLASS_KEY(class)
).
Such a macro is necessary to write things like :
aArchive & BOOST_SERIALIZATION_BASE_OBJECT_NVP2( MtxAnmFunctionTpl<int>, "MtxAnmFunctionTplInt" ) ;