我目前正在用 vs2012 编写代码,我想在 Linux 中编译。我想序列化并将进度保存到文件中,并希望在 32 位和 64 位架构以及 Windows 和 Linux 上都可以访问该保存文件。
我不想使用任何序列化库。
为了实现这一点,我希望有可以将类型转换和检索的函数,即 float、double、int32 和 int64(有符号和无符号)到固定长度和可移植原语,以便在二进制文件中存储和检索。我的理解是 bool 和 char 类型是在标准中指定的,因此已经是可移植的。
性能不是关键,但大小才是关键,因此 ASCII 在这里不是一个可行的解决方案。例如,如果平台使用的位长度大于我指定的固定长度,我不介意丢失一些精度,反之亦然。
由于我是新手,过多谈论字节序、IEEE 等会使我感到困惑和恼火。
我对一个可以开箱即用地为我进行这些转换的库特别感兴趣,但如果这是实现这一目标的唯一方法,我会考虑自己滚动。
仅供参考,我不想要序列化库,因为 boost 不适用于智能指针,谷物不适用于 VS2012,Microsoft 不适用于 Linux。如果我不得不到处乱画才能让这些东西发挥作用,我想我还不如自己做。
有任何想法吗?
编辑:因为我现在已经学习了 boost 序列化库的 c++11 兼容性,所以我很乐意接受这个解决方案。