C++11 Cereal 序列化 - 版本控制
C++11 Cereal Serialization - versioning
我已经成功连载了我的 class 的两个成员。
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
中的这些变量定义默认值。
但是肯定需要某种版本控制才能解决这种默认情况?有人可以指出我的文档或更好的一些示例代码吗?我在官方 website 上找不到任何东西。 (但很可能我只是瞎了..)
供将来参考 - 这里记录了如何版本化:
https://uscilab.github.io/cereal/serialization_functions.html#versioning
我已经成功连载了我的 class 的两个成员。
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
中的这些变量定义默认值。
但是肯定需要某种版本控制才能解决这种默认情况?有人可以指出我的文档或更好的一些示例代码吗?我在官方 website 上找不到任何东西。 (但很可能我只是瞎了..)
供将来参考 - 这里记录了如何版本化:
https://uscilab.github.io/cereal/serialization_functions.html#versioning