可惜目前 C++ 语言未能提供反射信息,目前只能手动描述对应的元信息,综上是 C++ 反射的优雅实现,仅需要实现一遍,通过宏展开生成代码,结合模板元编程的威力,就能为任意结构体生成对应的序列化、反序列化代码,减少程序员重复劳动、容易出错的问题。 期待未来 C++23 能提供反射信息,利用其模板元生成局部代码来替代宏,将减...
可惜目前 C++ 语言未能提供反射信息,目前只能手动描述对应的元信息,综上是 C++ 反射的优雅实现,仅需要实现一遍,通过宏展开生成代码,结合模板元编程的威力,就能为任意结构体生成对应的序列化、反序列化代码,减少程序员重复劳动、容易出错的问题。 期待未来 C++23 能提供反射信息,利用其模板元生成局部代码来替代宏,将减...
C 11 编译期有有两大神器:sizeof decltype,然后用这两者就能实现同样的功能,这里我用 decltype 来解决上述的 concept 问题: template<typenameT,typename=void,typename...Ts>struct CountMember {constexpr static size_t value = sizeof...(Ts) - 1;}; template<typenameT,typename...Ts>struct CountMember...