反射#
参考:reflection-cpp-cli & reflexpr
反射允许在运行时检查已知数据类型。反射允许枚举给定程序集中的数据类型,并且可以发现给定类或值类型的成员。无论类型在编译时是已知还是引用,情况都是如此。这使反射成为开发和代码管理工具的有用功能。
计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。比喻来说反射就是程序在运行的时候能够“观察”并且修改自己的行为。
C++ 本身提供的工具#
sizeof
:查询类型的内存大小typeid
:运行时检查类型信息type_traits
:元编程的重要组成部分,它提供了大量对类型进行查询和操作的实用工具,很多反射技巧或多或少都用到了这个库。