gpt4 book ai didi

c++ - 如何安全地序列化 std::basic_istream::pos_type?

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:30 27 4
gpt4 key购买 nike

在我的一个项目中,我必须缓存有关在大文件中找到的某些数据 block 的位置信息。我已经实现了一个围绕 std::basic_istream<char>::pos_type 构建的小型 API放置在 map 中。

现在我需要将这些描述符序列化为字节流并将它们写入磁盘以供进一步使用(在其他 *nix 机器上也是如此)。我读过这种类型是平台相关的,但仍然是 POD 类型。所以我的问题是:

  • 除了偏移量之外,保存一些东西是否更好?例如。 std::fpos<std::mbstate_t>保持阅读结构的状态?
  • 如何安全地从 std::basic_istream<char>::pos_type 中获取和恢复偏移量数据? (以及其他需要的信息)?

提前谢谢你。

最佳答案

std::fpos<mbstate_t>的结构未指定并且 mbstate_t 中可能存在非平凡状态.您当然不能可移植地序列化这些对象。您可以获取一个整数类型的偏移量类型(std::streamoff)的值,它的值可以被序列化。

关于c++ - 如何安全地序列化 std::basic_istream<char>::pos_type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41257958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com