我有一个要序列化的模板类(称为 C),我想为它指定一个用于提升序列化的版本。由于 BOOST_CLASS_VERSION 不适用于模板类。我试过这个:
namespace boost {
namespace serialization {
template< typename T, typename U >
struct version< C<T,U> >
{
typedef mpl::int_<1> type;
typedef mpl::integral_c_tag tag;
BOOST_STATIC_CONSTANT(unsigned int, value = version::type::value);
};
}
}
但它不编译。在 VC8 下,对 BOOST_CLASS_VERSION 的后续调用会给出以下错误:
error C2913: explicit specialization; 'boost::serialization::version' is not a specialization of a class template
正确的方法是什么?