В одном из моих проектов я должен кэшировать информацию о местоположении определенных фрагментов данных, найденных в больших файлах. Я уже реализовал небольшой API, построенный вокруг std::basic_istream<char>::pos_type
размещены на картах.
Теперь мне нужно сериализовать эти дескрипторы в поток байтов и записать их на диск для дальнейшего использования (также на других * nix-машинах). Я читал, что этот тип зависит от платформы, но все же является POD-типом. Итак, мои вопросы:
std::fpos<std::mbstate_t>
сохраняя состояние структуры чтения?std::basic_istream<char>::pos_type
(и другая информация, если это необходимо)?Заранее спасибо.
Структура std::fpos<mbstate_t>
не указано и может быть нетривиальное состояние в mbstate_t
, Вы, конечно, не можете портативно сериализовать эти объекты. Вы Можно получить значение типа смещения (std::streamoff
), который является целочисленным типом, и его значение может быть сериализовано.
Других решений пока нет …