静态成员和boost序列化

Pie*_*ter 7 c++ serialization static boost

我正在使用Boost.Serialization来存档类的内容.其中一个成员变量是静态std :: vector.

存档和恢复很顺利,但我有点希望库只保存一次静态成员,看来,从文件大小来看,静态成员是为每个存档实例完全保存的.

通过对静态向量使用set/getters并将类外部的静态向量序列化一次,可以很容易地避免这种情况.

但我宁愿拥有一个自给自足的课程.是否有一种干净简单的方法来实现仅对类的静态内容进行一次归档?

aru*_*rul 2

在序列化所有类的实例之前序列化静态向量。

如果像这样序列化向量:

template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
    ar & this->someVar;
    ar & this->AnotherVar;
    ar & staticVector;  
}
Run Code Online (Sandbox Code Playgroud)

当然,静态向量确实会与每个实例进行序列化。

如果您需要任何进一步的说明,serialize请发布您的函数和调用它的函数。