Как мне заставить Boost.Serialization работать с PhysicsFS? - PullRequest
1 голос
/ 22 октября 2011

Я хотел бы использовать 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?

1 Ответ

0 голосов
/ 26 октября 2011

Моя ошибка заключалась в вызове ofs.close (), а также в вызов PhysFS :: deinit до уничтожения ofs.

...