【问题标题】:How do I get Boost.Serialization to work with PhysicsFS如何让 Boost.Serialization 与 PhysicsFS 一起使用
【发布时间】:2011-10-22 12:12:44
【问题描述】:

我想将 PhysFS 与 Boost.Serialization 结合使用。我找到了一个实现here,它使用Boost.Iostreams 创建一个PhysFS 文件流。它适用于基本操作,如果我尝试将它与 Boost.Serialization 一起使用,我会在运行时收到以下错误:

/usr/include/boost/iostreams/detail/optional.hpp:55: T& boost::iostreams::detail::optional<T>::operator*() [with T = boost::iostreams::detail::concept_adapter<PhysFS::FileDevice>]: Assertion `initialized_' failed.
Aborted

这里是代码示例。

PhysFS::init(argv[0]);
PhysFS::setWriteDir(".");
PhysFS::FileStream ofs("test.xml", PhysFS::OM_WRITE);
boost::archive::xml_oarchive xml(ofs);
vec2 vec(3.1415, 2.5);
xml << BOOST_SERIALIZATION_NVP(vec);
ofs.close();
PhysFS::deinit();

有什么方法可以为 PhysFS 获得一个可以与 Boost.Serialization 等库一起使用的工作文件流包装器?

【问题讨论】:

    标签: serialization boost iostream physfs


    【解决方案1】:

    我的错误是调用ofs.close(),在销毁ofs之前还调用了PhysFS::deinit。

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 2018-07-10
      • 2015-12-10
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2020-10-02
      • 2019-05-26
      相关资源
      最近更新 更多