小编Cod*_*lse的帖子

boost派生对象的序列化不会调用derived的serialize()

我已阅读了大量类似问题,但未找到答案.我正在使用Visual Studio 2010并提升1.47.

这是代码,它是完整的和可编译的:

#include "stdafx.h"

#include <string>
#include <sstream>

#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>

#include <boost/serialization/export.hpp>

using namespace std;

class BaseObject 
{
public:

    BaseObject(void) { };
    virtual ~BaseObject(void) { };

    template<class Archive>
      void serialize(Archive &ar, const unsigned int version)
      { /* nothing happens here */  };
};

class DerivedObject : public BaseObject
{
public:

    string text;

public:

    DerivedObject(void) { };
    ~DerivedObject(void) { };

    template<class Archive>
      void serialize(Archive &ar, const unsigned int version)
      {
          ar & text;
      };
};

BOOST_CLASS_EXPORT(DerivedObject)

int …
Run Code Online (Sandbox Code Playgroud)

c++ serialization boost export derived

6
推荐指数
1
解决办法
795
查看次数

标签 统计

boost ×1

c++ ×1

derived ×1

export ×1

serialization ×1