使用boost :: serialization时,是否应该序列化没有成员变量的基础对象?

时间:2013-10-08 17:35:24

标签: c++ boost-serialization

我是否需要序列化没有成员的基础对象(例如接口)?

class Base {
    template <typename A> void serialize(A& a, unsigned int v) {}
};

class Derived: public Base {
    template <typename A> void serialize(A& a, unsigned int v) {
        // Should I do this?
        archive & boost::serialization::base_object<Base>(*this);
    }
};

这似乎是不必要的样板,并且在基类上引发了对boost :: serialization的额外依赖,但同时如果有人稍后会向基类添加一个成员,那将很难,因为整个层次结构需要改变。

1 个答案:

答案 0 :(得分:1)

对于基本指针的序列化,您需要Base :: serialize。