反射#

参考:reflection-cpp-cli & reflexpr

反射允许在运行时检查已知数据类型。反射允许枚举给定程序集中的数据类型,并且可以发现给定类或值类型的成员。无论类型在编译时是已知还是引用,情况都是如此。这使反射成为开发和代码管理工具的有用功能。

计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。比喻来说反射就是程序在运行的时候能够“观察”并且修改自己的行为。

C++ 本身提供的工具#

  • sizeof:查询类型的内存大小

  • typeid:运行时检查类型信息

  • type_traits:元编程的重要组成部分,它提供了大量对类型进行查询和操作的实用工具,很多反射技巧或多或少都用到了这个库。