C++11 谷物序列化 - 版本控制

C++11 Cereal Serialization - versioning

本文关键字:版本控制 序列化 C++11      更新时间:2023-10-16

我已经成功地序列化了我的类的两个成员。

archive(
cereal::make_nvp("width", m_width),
cereal::make_nvp("height", m_height),
);

现在,在更高版本中,我的代码包含更多成员,我也想存档它们:

archive(
cereal::make_nvp("width", m_width),
cereal::make_nvp("height", m_height),
cereal::make_nvp("lambda0", m_lambda0),
cereal::make_nvp("phi1", m_phi1)
);

但是,由于新成员不在旧存档中,因此会崩溃。据我所知,没有办法在make_nvp中为这些变量定义默认值。

但是肯定必须有某种版本控制才能解决这种默认情况?有人可以指出我的文档,甚至更好的是一些示例代码吗?我在官方网站上找不到任何东西。(但很可能我只是瞎了..

供将来参考 - 这里记录了如何进行版本控制:

https://uscilab.github.io/cereal/serialization_functions.html#versioning