首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态成员和boost序列化

静态成员和boost序列化
EN

Stack Overflow用户
提问于 2009-03-20 13:45:15
回答 2查看 2K关注 0票数 7

我正在使用Boost.Serialization对类的内容进行归档。其中一个成员变量是静态std::vector。

归档和恢复很好,但我希望库只保存一次静态成员,从文件大小来看,每个归档实例的静态成员都是完全保存的。

通过对静态向量使用set/getter并在类外部序列化一次静态向量,可以很容易地绕过这一点。

但我更希望有一个独立的类。有没有一种简单明了的方法来实现一个类的静态内容只归档一次?

EN

回答 2

Stack Overflow用户

发布于 2009-03-20 14:20:02

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

如果像这样序列化向量:

代码语言:javascript
复制
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
    ar & this->someVar;
    ar & this->AnotherVar;
    ar & staticVector;  
}

那么可以肯定的是,静态向量确实会被每个实例序列化。

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

票数 2
EN

Stack Overflow用户

发布于 2009-03-20 17:46:30

我使用Boost.Serialization的经验非常有限,因此请相应地考虑以下内容:

IIRC,对静态成员的处理是对指针的处理。因此,序列化指向静态成员的指针可能会起作用。

Self-critique:我不确定如何在反序列化时应用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/666205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档