你只要保证自己的实现正确,MetaHolder<Class>里没有错放别的类的Member,类型安全就没有问题。用户接触不到你内部的void*。
序列化里用void*那可太多了。难道我从二进制反序列化int时候就不能*(int*)buf,非得读四个字节出来用位操作拼么?序列化本来就是一个不讲究类型安全的场合。
【 在 DoorWay 的大作中提到: 】
: 但它完全没必要地带了T和Class类型,导致你每个Class都对应一套Member,
: 每个class都对应一套Member,——这点有道理。我看到这种方案时,第一反应也是这。我主要是担心编译慢。在另一处看了类似方案,目前主流都是每个类背后一个tuple。于是就随流了。
: Class类型和void*对比,不能完全说多余。类型安全,不会传错obj。这是除了面向对象,我学cpp排第二的根深蒂固的思想。
: ...................
--
FROM 58.37.58.*