C++ 我应该何时在boost中使用序列化库

C++ 我应该何时在boost中使用序列化库,c++,boost,C++,Boost,最近,我找到了boost的序列化库。但当我使用它将数据保存到文件时,我发现这个库不是我所期望的。 因为我没有使用接口ISerializable并实现该接口的保存和加载方法。但是,我应该添加friend类,并实现函数模板。就我个人而言,我认为这很难看(尽管设计理念可能有点好和棘手)。当我尝试将2个点存储到文本文件中时,会得到如下文件: 显然,人类很难阅读。 所以我的问题是: 1.在什么样的情况下我应该使用这个库来做序列化工作。例如,我是否应该使用它将一些3D点存储到文件中?或者我应该在更复杂的场

最近,我找到了boost的序列化库。但当我使用它将数据保存到文件时,我发现这个库不是我所期望的。
因为我没有使用接口ISerializable并实现该接口的保存和加载方法。但是,我应该添加friend类,并实现函数模板。就我个人而言,我认为这很难看(尽管设计理念可能有点好和棘手)。当我尝试将2个点存储到文本文件中时,会得到如下文件:

显然,人类很难阅读。
所以我的问题是:
1.在什么样的情况下我应该使用这个库来做序列化工作。例如,我是否应该使用它将一些3D点存储到文件中?或者我应该在更复杂的场景中使用它。

2.我有没有办法控制输出文件的格式?因为我认为上面的数字真的很难理解。

序列化不是为了让人理解。如果他们能理解,那很好,但这可能意味着格式没有它可能的那么有效。当您希望以一种格式传输数据时,可以使用序列化,这种格式允许数据在不考虑诸如值大小或字节顺序等底层硬件差异的情况下进行重构。@谢谢,所以它的主要目的是数据的可移植性?是的,这是一种很好的总结方法。对象存储也是序列化的一个很好的用例。我们经常使用Boost。序列化,XML存档对于调试很好,可读性很强,二进制存档很有效。如果您担心可读性,您是否尝试过使用XML存档?可以以人类可读的格式进行序列化。XML是人类可读的,您可以使用boost将其序列化为XML。您还可以定义自己的格式,并根据需要使其神秘或透明。