J'ai une classe de template que je sérialise (appelons-la C), pour laquelle je veux spécifier une version pour la sérialisation boost. Comme BOOST_CLASS_VERSION ne fonctionne pas pour les classes de modèles. J'ai essayé ceci:Sérialisation de Boost: spécification d'une version de classe de modèle
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);
};
}
}
mais il ne compile pas. Sous VC8, un appel ultérieur à BOOST_CLASS_VERSION donne cette erreur:
error C2913: explicit specialization; 'boost::serialization::version' is not a specialization of a class template
Quelle est la bonne façon de le faire?
"mais il ne compile pas". Peux-tu nous donner quelques informations? –
Sous VC8: erreur C2913: spécialisation explicite; 'boost :: serialization :: version' n'est pas une spécialisation d'un modèle de classe lors d'un appel ultérieur à BOOST_CLASS_VERSION. – Jazz
Cela semble correct. Le message d'erreur semble suggérer que vous n'avez pas inclus version.hpp –