C++如何知道一个类在C++中有什么类型的成员

标签 c++

我知道 C++ 中没有像 Java、C# 和 AS3 中那样的反射。但我真的需要知道一个类(class)有什么类型的成员。 (我假设用户以我可以提供给他的方式创建了一个类,然后我应该能够列出所有成员类型。)我该怎么做?

当然,我可以在自然预处理的基础上增加一个预处理阶段来完成这个,但我想要另一种解决方案。更优雅,而不是 hacky。

例子:

用户像这样创建一个类:(我们可以用不同的方式创建一个类,例如我可以要求从某个类继承或使用宏...)

class A
{
   int a;
   double b;
};

现在我可以获得 A {"int", "double"} 类所有成员的列表作为字符串列表。像这样,例如:

GetTypes::listOfMemberTypes(A) or GetTypes<A>::listOfMemberTypes

返回包含“int”、“double”的列表

最佳答案

您阅读了相关类的源代码。

关于C++如何知道一个类在C++中有什么类型的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256856/

相关文章:

c++ - visual studio 中的 __OPTIMIZE__ 是什么

c++ - 在 lambda 捕获中创建一个数组

c++ - 模板虚函数

c++ - OpenCV 拆分和合并

c++ - 异常(exception):使用C++的EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

c++ - 改进多线程的一般技巧(在 C++ 中)

c++ - Poco c++ Crypto 静态库的使用在 XCode 构建中产生错误

c++ - 使用 makefile 编译 C++ 11 程序的简单方法

c++ - Botan::AutoSeeded_RNG/m128i _mm_shuffle_epi8:目标特定选项不匹配

c++ - 将模板传递给函数而不指定具体类型