Tengo una clase de plantilla que serializo (llámala C), para lo cual quiero especificar una versión para impulsar la serialización. Como BOOST_CLASS_VERSION no funciona para las clases de plantilla. Intenté esto:serialización Boost: especificando una plantilla clase versión
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);
};
}
}
pero no compila. Bajo VC8, una llamada posterior a BOOST_CLASS_VERSION da este error:
error C2913: explicit specialization; 'boost::serialization::version' is not a specialization of a class template
Cuál es la forma correcta de hacerlo?
"pero no compila". ¿Puede darnos algo de información que eso? –
En VC8: error C2913: especialización explícita; 'boost :: serialization :: version' no es una especialización de una plantilla de clase en una llamada posterior a BOOST_CLASS_VERSION. – Jazz
Parece correcto. El mensaje de error parece sugerir que no ha incluido version.hpp –