【发布时间】:2010-04-01 17:04:52
【问题描述】:
是否可以将类型名称存储为 C++ 变量?例如,像这样:
type my_type = int; // or string, or Foo, or any other type
void* data = ...;
my_type* a = (my_type*) data;
我知道在 99.9% 的情况下,有更好的方法来做你想做的事,而无需求助于强制转换 void 指针,但我很好奇 C++ 是否允许这种事情。
【问题讨论】:
-
这是不可能的。取决于您要实现的具体目标,但模板可能是可行的。你能告诉我们更多关于你要解决什么问题的背景吗?
-
在 c++0x 中该特定功能是可能的,但从来没有一个地方有用,因为当原始变量存在时类型信息会丢失。
-
我能想到的在 C++ 中多态存储类型的唯一方法是 类型擦除。