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的链接器错误