boost::serialization中是否有办法告诉序列化/存档使用特定的存档版本(如https://github.com/boostorg/serialization/blob/boost-1.60.0/src/basic_archive.cpp一样)?
我们遇到了这样的麻烦:客户端现在是用Boost 1.60构建并交付的,而Server仍是1.59。客户端现在发送14
的存档版本,而服务器仅知道13
。因此抛出“不受支持的版本”。为了避免在服务器上更新boost的麻烦:我们可以告诉客户端使用较旧的存档版本13
吗?
当我们从XML文件切换到PortableTextArchives(似乎只能在同一Boost版本的跨平台移植的情况下)时,这似乎才开始使我们感到bit恼。
提前致谢!
最佳答案
使用v13的唯一方法是针对使用该版本的boost版本进行编译和链接。
因此,仅存在向前兼容性,而没有向后兼容性。实际上,您始终希望确保服务器版本在任何给定时间都在部署的所有客户端之前。
可以说,可移植性是不同的“轴”。目标稍有不同,因此与缺少向后兼容的版本控制没有真正的冲突。
关于c++ - v1.59和v1.60之间的boost::serialization存档版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44063561/