目前阶段的反射只能用宏,或者预处理。
BitShares区块链的代码里也有一个反射框架,看着挺复杂的,宏用的boost PP。看名字好像支持继承的反射。
https://github.com/bitshares/bitshares-fc/blob/4d024a83b774da0e186c0c6c070e695f563da373/include/fc/reflect/reflect.hpp
这个不需要在宏里把每个成员再重复一遍
https://zhuanlan.zhihu.com/p/388454455
这是个动态反射
https://www.rttr.org/
【 在 emwanwei 的大作中提到: 】
: 比较山寨的办法, 用宏 + std::tie + magic enum可以实现对带枚举的 struct 递归序列化和反序列化。 使用的时候类似用一个
: STRUCT_REFLECTION(XXStruct, id, key, color, value)
: 不过在实际工程中没这么用,因为如果序列化了std::vector这种container, 或者带智能指针和多态的类型,在TypeScript或者别的语言不容易一行代码做反序列化。
--
修改:z16166 FROM 123.118.191.*
FROM 123.118.191.*