存储数据类型信息

Max*_*xpm 2 c++ typeinfo

假设我有一些不同类型的变量.

int MyInteger;
double MyDouble;
char MyChar;
Run Code Online (Sandbox Code Playgroud)

这些变量的指针存储在一个void指针数组中.

void* IntegerPointer = &MyInteger;
void* DoublePointer = &MyDouble;
void* CharPointer = &MyChar;

void* PointerArray[] = {IntegerPointer, DoublePointer, CharPointer};
Run Code Online (Sandbox Code Playgroud)

我想将数据类型信息存储在并行数组中. type_info似乎适合该任务,但不支持赋值.所以我不能只做这样的事情:

type_info TypeInfoArray[] = {int, double, char};
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来存储有关数据类型的信息?

Ste*_*eve 5

我建议你使用变体类型.我不想这么说,但试试boost :: variant(或类似的东西).忘记所有这些并行数组和void指针的东西; 单一阵列的变体实现了同样的东西,而且更加优雅.