我想将 PhysFS 与 Boost.Serialization 结合使用。我在 这里找到了一个实现,它使用 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 等库一起使用的工作文件流包装器?