在我的一个项目中,我必须缓存有关在大文件中找到的某些数据块的位置信息。我已经实现了一个围绕地图std::basic_istream<char>::pos_type
构建的小型API。
现在我需要将这些描述符序列化为字节流并将它们写在磁盘上以供进一步使用(在其他* nix-machines上也是如此)。我已经读过这种类型依赖于平台,但仍然是POD类型。所以我的问题是:
std::fpos<std::mbstate_t>
保持阅读结构的状态?std::basic_istream<char>::pos_type
获取和恢复偏移数据(如果需要,还可以提供其他信息)?提前谢谢。
答案 0 :(得分:0)
std::fpos<mbstate_t>
的结构未指定,mbstate_t
中可能存在非平凡状态。你当然不能移植序列化这些对象。 可以获取偏移类型(std::streamoff
)的值,该值是整数类型,其值可以序列化。