我想将PhysFS与Boost.Serialization结合使用。我找到了一个使用Boost.Iostreams创建PhysFS文件流的实现here。它适用于基本的操作,如果我尝试在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();有没有办法获得一个可以与Boost.Serialization这样的库一起工作的PhysFS文件流包装器?
发布于 2011-10-26 20:04:50
我的错误是调用了ofs.close(),并在销毁ofs之前调用了PhysFS::deinit。
https://stackoverflow.com/questions/7859418
复制相似问题