连接存档增强序列化[关闭]

Posted

技术标签:

【中文标题】连接存档增强序列化[关闭]【英文标题】:Concatenate archive boost serialization [closed] 【发布时间】:2018-06-14 19:01:01 【问题描述】:

假设我想序列化两个整数。序列化由两个独立的函数执行。我想连接这两个档案,只得到一个。我正在尝试通过 boost::archive::xml_oarchive 来实现,但我所拥有的只是两个单独的 xml。

【问题讨论】:

欢迎来到 ***。请查看How to create a Minimal, Complete, and Verifiable example 并相应地更新您的问题。 【参考方案1】:

只需在函数之间共享存档。

不是:

int a = 1, b = 2;

void foo() 
     boost::archive::xml_oarchive oa(std::cout);
     oa << a;

void bar() 
     boost::archive::xml_oarchive oa(std::cout);
     oa << b;

但是:

void foo(boost::archive::xml_oarchive& oa) 
     oa << a;

void bar(boost::archive::xml_oarchive& oa) 
     oa << b;

那么你可以:

void foobar() 
     boost::archive::xml_oarchive oa(std::cout);
     foo(oa);
     bar(oa);

【讨论】:

以上是关于连接存档增强序列化[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

提高序列化保存到多种存档类型,并防止在使用指针加载时构造新对象

序列化 std::vector 以提升二进制存档时的数据相关失败

Unity存档系统丨如何正确的序列化,及构建一个较为完善的数据存储系统

Unity存档系统——Json格式的文件

Archiving

Delphi2010的RTTI增强