我是否需要序列化没有成员的基础对象(例如接口)?
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的额外依赖,但同时如果有人稍后会向基类添加一个成员,那将很难,因为整个层次结构需要改变。
答案 0 :(得分:1)
对于基本指针的序列化,您需要Base :: serialize。