如何使Boost.Serialization与PhysicsFS一起工作

如何使Boost.Serialization与PhysicsFS一起工作,serialization,boost,iostream,physfs,Serialization,Boost,Iostream,Physfs,我想将PhysFS与Boost.Serialization结合使用。我发现了一个使用Boost.Iostreams创建PhysFS文件流的实现。它适用于基本操作,如果我尝试将其与Boost一起使用,则会在运行时出现以下错误: /usr/include/boost/iostreams/detail/optional.hpp:55: T& boost::iostreams::detail::optional<T>::operator*() [with T = boost::ios

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

/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
/usr/include/boost/iostreams/detail/optional.hpp:55:T&boost::iostreams::detail::optional::operator*()[with T=boost::iostreams::detail::concept_adapter]:断言“initialized_u”失败。
流产
下面是一个代码示例

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::init(argv[0]); PhysFS::setWriteDir(“.”); PhysFS::filestreamofs(“test.xml”,PhysFS::OM_WRITE); boost::archive::xml\u-oarchivexml(ofs); vec2 vec(3.1415,2.5);
xml我的错误是调用ofs.close(),并在销毁ofs之前调用PhysFS::deinit