Skip to content

Serialization and deserialization

序列化与反序列化。按照C++中的说法,deserialization也可以叫做reinterpret。

概念 解释 需要考虑的问题
serialization 给定一个object,得到它的object representation 一般使用**byte type**
deserialization 给定一个memory region,按照指定type进行interpretion - memory address是否满足type的Alignment requirement
- Strict aliasing

C++中,serialization and deserialization都是可以通过reinterpret_cast来实现的。

从上面可以看出,这些内容是密切相关的:

可以这样来总结它们之间的关联:在C++中,一般通过reinterpret_cast来进行deserialization,在进行deserialization的时候,需要考虑Strict aliasing,strict aliasing的目的是:满足type的Alignment requirement。

参见:

  • byte type:C-family-language\C++\Language-reference\Basic-concept\Type-system\Type-system\Byte-type.md
  • strict aliasing:C-family-language\C-and-C++\Pointer-array-alias\Alias

TODO

https://isocpp.org/wiki/faq/serialization

https://stackoverflow.com/questions/234724/is-it-possible-to-serialize-and-deserialize-a-class-in-c