boost::serialization v1.59 和 v1.60 之间的归档版本

Posted

技术标签:

【中文标题】boost::serialization v1.59 和 v1.60 之间的归档版本【英文标题】:boost::serialization archive versions between v1.59 and v1.60 【发布时间】:2017-10-19 04:49:29 【问题描述】:

在 boost::serialization 中有没有办法告诉序列化/存档使用特定的存档版本(如https://github.com/boostorg/serialization/blob/boost-1.60.0/src/basic_archive.cpp)?

我们遇到了问题,客户端现在是使用 Boost 1.60 构建和交付的,而服务器仍然是 1.59。客户端现在发送14 的存档版本,而服务器只知道13。因此抛出“不支持的版本”。为了避免在服务器上更新 boost 的麻烦:我们可以告诉客户端使用旧的存档版本13吗?

当我们从 XML 存档切换到 PortableTextArchives(似乎只能跨平台移植相同的增强版本...)时,这似乎才开始困扰我们。

提前致谢!

【问题讨论】:

【参考方案1】:

使用 v13 的唯一方法是编译并链接到使用该版本的 boost 版本。

所以,只有向前兼容,没有向后兼容。实际上,您总是希望确保服务器版本领先于任何给定时间部署的任何客户端。

可以说,便携性是一个不同的“轴”。目标略有不同,因此与缺乏向后兼容的版本没有真正的冲突。

【讨论】:

谢谢,我担心会是这样的结果。 ;)

以上是关于boost::serialization v1.59 和 v1.60 之间的归档版本的主要内容,如果未能解决你的问题,请参考以下文章

如何为 boost::serialization 指定一个 nvp 包装器?

来自boost / serialization / vector #include的链接器错误

对 boost::serialization 的未定义引用

如何让 boost::serialization 工作?

boost::serialization::traits 的具体例子?

为什么我不能编译Boost.Serialization演示?