我的问题是关于程序回滚和存档兼容性的管理:假设我在版本 10 => archive.txt 中保存了一个类型为 T 的对象和我的程序。如果我将程序回滚到以前的版本(比如说 5),我想检查(不尝试反序列化以解决性能问题)1.30 中的 T 是否与 archive.txt 中保存的对象具有相同的“BOOST_CLASS_VERSION”。
简而言之:有没有办法检索存储在存档中的 T 的 BOOST_CLASS_VERSION ?
我阅读了 boost 代码,但我没有找到一种“非常直接”的方法来做到这一点。看来我必须得到 basic_iarchive_impl 的 cobject_id_vector,但所有这些东西都是私有的。他们是另一种非侵入性的方式吗?(通过非侵入性我的意思是:只使用 boost public 的东西,或者至少使用简单的继承来获得基类的受保护成员?)。
提前致谢。