C++ 如何处理类结构中的更改并与使用boost序列化的数据/对象向后兼容?

C++ 如何处理类结构中的更改并与使用boost序列化的数据/对象向后兼容?,c++,serialization,boost,C++,Serialization,Boost,我有一个任务,就是使用一个C++类使用 boost::serialization::access 这些对象存储到文本文件中并读回 但是,我需要向后兼容,并且新的bool成员必须序列化 我需要允许新代码读取旧文件并只写入新格式 具体来说,序列化文件缺少新的数据成员。这会在读入时导致异常 我该怎么做?/有什么建议/机制允许这种情况发生 我会想象有一种模式或已知的处理方式,我不确定那可能是什么 (当然,编写boost代码的人知道代码/对象将发生变化,旧文件必须由新代码/对象处理)boost的序列化支

我有一个任务,就是使用一个C++类使用

boost::serialization::access
这些对象存储到文本文件中并读回

但是,我需要向后兼容,并且新的bool成员必须序列化

我需要允许新代码读取旧文件并只写入新格式

具体来说,序列化文件缺少新的数据成员。这会在读入时导致异常

我该怎么做?/有什么建议/机制允许这种情况发生

我会想象有一种模式或已知的处理方式,我不确定那可能是什么


(当然,编写boost代码的人知道代码/对象将发生变化,旧文件必须由新代码/对象处理)

boost的序列化支持版本。请参阅以下链接:,和。

这就是
version
参数的作用——您可以对自己的对象进行版本设置。