C++Boost.序列化与简单的加载/保存

C++ Boost.serialization vs simple load/save

本文关键字:加载 保存 简单 序列化 C++Boost      更新时间:2023-10-16

我是一名计算科学家,处理大量模拟数据,经常发现自己在磁盘中保存/加载数据。对于简单的任务,比如向量,这通常就像将一堆数字转储到一个文件中一样简单,仅此而已

对于更复杂的东西,生命对象等等,我有保存/加载成员函数。现在,我不是计算机科学家,因此我经常在SO上看到我不理解的术语(但我喜欢)。我最近遇到的其中一个主题是序列化Boost.Serialization库。

根据我的理解,序列化只是将对象转换为可以从dist保存/加载或通过网络传输的东西的过程。考虑到我最多需要将我的对象保存/加载到磁盘中/从磁盘加载,我有什么理由从简单的加载/保存功能切换到Boost.Serialization吗?除了我已经在做的事情之外,Boost.Serialization还会给我什么?

该库考虑了许多从纯粹的"应用性"角度来看可能不太明显的细节。

例如,数据可移植性WRT大/小数字尾数、指向数据生命周期、结构化容器、版本控制、非侵入性扩展等等。此外,它以正确的方式处理与其他stdboost基础设施的交互,并规定了一种代码结构方式,使您能够更轻松地进行代码维护。您会发现许多(所有std&boost?)容器都可以使用现成的序列化程序。

考虑一下,如果您需要与其他人共享数据,那么引用已发布、维护和调试的模式可能会使事情变得更容易。