Tôi có một lớp mẫu mà tôi sắp xếp thứ tự (gọi là C), mà tôi muốn chỉ định một phiên bản để tăng tuần tự hóa. Vì BOOST_CLASS_VERSION không hoạt động đối với các lớp mẫu. Tôi đã thử điều này:Tăng tuần tự hóa: chỉ định phiên bản lớp mẫu
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);
};
}
}
nhưng không biên dịch. Dưới VC8, một cuộc gọi tiếp theo để BOOST_CLASS_VERSION cho lỗi này:
error C2913: explicit specialization; 'boost::serialization::version' is not a specialization of a class template
cách chính xác để làm điều đó là gì?
"nhưng không biên dịch". Bạn có thể cho chúng tôi một số thông tin hơn thế không ?? –
Theo VC8: lỗi C2913: chuyên môn rõ ràng; 'boost :: serialization :: version' không phải là một chuyên môn của một lớp mẫu trên một cuộc gọi tiếp theo tới BOOST_CLASS_VERSION. – Jazz
Có vẻ chính xác. Thông báo lỗi dường như cho thấy bạn chưa bao gồm phiên bản.hpp –