我有一個模板類,我序列化(稱爲C),爲此我想指定升序序列化的版本。由於BOOST_CLASS_VERSION不適用於模板類。我試過這個:Boost序列化:指定一個模板類版本
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
什麼是做了正確的方法是什麼?
「但它不編譯」。你能給我們一些信息嗎? – 2008-09-17 12:39:39
VC8下: 錯誤C2913:明確的專業化; 'boost :: serialization :: version'不是在隨後調用BOOST_CLASS_VERSION時類模板 的專門化。 – Jazz 2008-09-17 13:28:40