我是否需要序列化没有成员的基础对象(例如接口)?
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 产生额外的依赖,但同时如果有人稍后将成员添加到基类中,这将很困难,因为整个层次结构都需要被改变。