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

C++ 使用boost::serialization时,是否应该序列化没有成员变量的基对象?,c++,boost-serialization,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?

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

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);
    }
};
类基{
模板void序列化(A&A,无符号int v){}
};
派生类:公共基{
模板无效序列化(A&A,无符号整数v){
//我应该这样做吗?
归档和boost::序列化::基本对象(*this);
}
};

这似乎是不必要的样板文件,会导致基类上的boost::serialization产生额外的依赖性,但同时,如果以后有人向基类添加成员,这将很困难,因为整个层次结构都需要更改。

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

我不确定,如果序列化基指针会怎么样?是的,您是对的,如果不序列化基对象,它将无法工作。你能回答这个问题吗?