, - :
#define BOOST_CLASS_TEMPLATE_EXPORT_IMPLEMENT(T) \
namespace boost { \
namespace archive { \
namespace detail { \
namespace { \
template<typename U> \
struct init_guid< T<U> > { \
static guid_initializer< T<U> > const & g; \
}; \
template<typename U> \
guid_initializer< T<U> > const & init_guid< T<U> >::g = \
::boost::serialization::singleton< \
guid_initializer< T<U> > \
>::get_mutable_instance().export_guid(); \
}}}} \
#define BOOST_CLASS_TEMPLATE_EXPORT_KEY2(T, K) \
namespace boost { \
namespace serialization { \
template<typename U> \
struct guid_defined< T<U> > : boost::mpl::true_ {}; \
template<typename U> \
inline const char * guid< T<U> >(){ \
return K + "<" + guid<U>() + ">";
} \
} \
} \
#define BOOST_CLASS_TEMPLATE_EXPORT_KEY(T) \
BOOST_CLASS_TEMPLATE_EXPORT_KEY2(T, BOOST_PP_STRINGIZE(T)) \
#define BOOST_CLASS_TEMPLATE_EXPORT_GUID(T, K) \
BOOST_CLASS_TEMPLATE_EXPORT_KEY2(T, K) \
BOOST_CLASS_TEMPLATE_EXPORT_IMPLEMENT(T) \
. , , , user_type . , , , , - , ( X ).
, , // , Boost.Serialization(, ).