【发布时间】:2014-09-20 23:28:28
【问题描述】:
我有很多布尔属性的对象,所以我使用位域来更紧凑地打包属性。我还希望能够以紧凑的方式序列化和反序列化这些属性,例如不是逐个字段,而是通过序列化和反序列化保存字段的 64 位 uint。这种方式不仅速度更快(例如,避免所有的移位和其他东西),而且内存效率提高了 8 倍。
但是,我读到该标准不保证位域实现在不同平台上是统一的。我可以期望位域容器的“批量”二进制序列化会在平台之间产生统一的结果吗?或者在使用属性时进行手动移位和屏蔽可能更安全,以便批量序列化和反序列化成为可能?
【问题讨论】:
-
您使用的是哪种位域?
std::bitset? -
@MatthiasB - 没有普通的旧 C 位字段。
标签: c++ serialization binary deserialization bit-fields