是否有一个类/结构的术语既是平凡的布局又是标准布局,但也没有指针成员?
基本上我想提及"真的"普通旧数据类型。我可以从内存中获取并存储在磁盘上的数据,然后读回内存以供以后处理,因为它只不过是一组int,字符,枚举等。
有没有办法在编译时测试一个类型是"真的"普通旧数据类型?
相关:
What are POD types in C++?
What are Aggregates and PODs and how/why are they special?
答案 0 :(得分:2)
这可能取决于结构的语义。我可以想象一个结构,int
字段是一些易失性临时数据存储(或缓存)的键。您仍然不应该序列化这些,但是您需要有关该结构的内部知识才能告诉 1 。
通常,C ++缺乏通用序列化的功能。仅仅根据指针进行自动化只是冰山一角(如果可能一般非常准确) - 它也是impossible的通用方式。 C ++仍然没有反射,因此没有办法检查“每个成员”的某些条件。
现实的方法可能是:
所有这些都有其局限性,加上我之前的保留,我不确定它们有多实用。
1 这当然是双向的;指针可用于存储相对偏移量,因此可完全序列化。