提升多态类的序列化似乎不起作用(1.40+ boost),例如使用以下代码,我相信我遵循以下规则:导出类并尝试使用gcc4.4(ubuntu)和windows VS2010(使用boost 1.48) :在下面的程序中,我希望打印10和100,但它只打印10,这意味着它只序列化了基类;
我大多是从boost的文档中复制了这个例子,但它仍然不起作用; 有谁有任何想法?非常感谢LS
#include <iostream>
#include <sstream>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/serialization.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/export.hpp>
#define NVP(X) X
class base {
public:
friend class boost::serialization::access;
base (){ v1 = 10;}
int v1;
template<class Archive>
void serialize(Archive & ar, const unsigned int file_version)
{
ar & NVP(v1);
}
};
class derived : public base {
public:
friend class boost::serialization::access;
int v2 ;
derived() { v2 = 100;}
template<class Archive>
void serialize(Archive & ar, const unsigned …Run Code Online (Sandbox Code Playgroud)