Boost 序列化版本控制如何工作?

Posted

技术标签:

【中文标题】Boost 序列化版本控制如何工作?【英文标题】:How does Boost Serialization Versioning work? 【发布时间】:2017-06-22 17:46:08 【问题描述】:

有人可以向我解释一下 Boost Serialization 中的版本控制是如何工作的。存档版本始终为 10,类版本为 0。我认为当存档与上一个版本不同时,版本会自动递增。如果我更改了某些内容,我是否必须自己定义版本号?

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="10">
    <EventSet class_id="0" tracking_level="0" version="0">
        <Size>1</Size>
        <Event>
        ...
        </Event>
    </EventSet>
</boost_serialization>

【问题讨论】:

我不确定我是否理解您认为这将如何运作。但是,the documentation 中的教程似乎很清楚。 @DanMašek 再次感谢。我想,我误解了它,但现在我更清楚了。 【参考方案1】:

Boost 文档中没有描述,但 boost_serialization signature="serialization::archive" version="10" 行对应于 Boost.Archive 库的版本,它有时会在新版本的 Boost 可用时发生变化。

正如文档所解释的,EventSet class_id="0" tracking_level="0" version="0" 行对应于类版本。您可以使用宏“BOOST_CLASS_VERSION(EventSet, 1)”在代码中更改它。

【讨论】:

以上是关于Boost 序列化版本控制如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

版本控制如何与 Flex 远程对象和 AMF 一起使用?

Dart 包版本如何工作以及我应该如何对我的 Flutter 插件进行版本控制?

Boost序列化版本信息

在开发过程中,如何检查 coredata 版本控制是不是正常工作?

boost text 序列化版本(15 vs 18)

使用 JSON 协议处理版本控制的最佳方法是啥?