gpt4 book ai didi

c++ - Boost序列化的向后兼容性问题1:73

转载 作者:行者123 更新时间:2023-12-02 10:14:01 25 4
gpt4 key购买 nike

我们使用boost序列化来读写数据,只是从boost 1:67切换到boost 1:73。
现在,我们无法读回以boost 1:67或更早版本写入的数据。我们得到一个archive_exception::input_stream_error异常。
检查文件将显示差异。旧文件开始于
22序列化::存档16
新文件缺少此数据。将其从文件中删除后,可以以1:73的速度读取。
但是奇怪的是,如果尝试一个小的示例程序(文档中的gps示例)也将boost 1:73生成此数据:
22序列化::存档18
您知道这些版本之间有什么更改,并且可能导致此问题吗?预先感谢您的任何提示。
我们的应用程序使用自己的派生存档类。也许我必须在那改变一些东西?
最好的祝福
Kai Benndorf

最佳答案

我自己找到了解决方法。
我们自己的文件来自例如boost::archive::text_iarchive_impl。
如果将以下代码添加到其构造函数中,它将再次起作用:

if(0 == (flags & boost::archive::archive_flags::no_header))
init();
我在text_iarchive类中找到了这段代码,该类派生自text_iarchive_impl,这对我来说很奇怪。
这是一个错误,还是我应该使用另一个类来派生我们自己的存档?

关于c++ - Boost序列化的向后兼容性问题1:73,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62568739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com