Mam klasę szablonu, którą serializuję (nazywam ją C), dla której chcę określić wersję do serializacji bodźców. Ponieważ BOOST_CLASS_VERSION nie działa dla klas szablonów. Próbowałem tego:Poprawianie serializacji: określanie wersji klasy szablonów
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);
};
}
}
ale nie kompiluje się. Pod VC8, późniejsze wywołanie BOOST_CLASS_VERSION daje ten błąd:
error C2913: explicit specialization; 'boost::serialization::version' is not a specialization of a class template
Co to jest poprawny sposób to zrobić?
"ale nie kompiluje się". Czy możesz dać nam trochę informacji niż to? –
Pod VC8: błąd C2913: jawna specjalizacja; "boost :: serialization :: version" nie jest specjalizacją szablonu klasy przy kolejnym wywołaniu BOOST_CLASS_VERSION. – Jazz
Wygląda prawidłowo. Komunikat o błędzie sugeruje, że nie zawierałeś wersji.hpp –