如何使用typeid获取定义使用typedef的类型名称

时间:2014-09-05 16:27:18

标签: c++ typedef typeid

这是我的问题:

我定义了一个新类型并使用新类型来声明变量:

typedef int new_type;
new_type value;

我需要以某种方式使用typeid将new_type作为字符串返回,但如果我使用:

typeid(value)

它将返回int,而不是new_type。

有没有办法将new_type作为字符串返回?

谢谢!

1 个答案:

答案 0 :(得分:4)

typedef不是他们的自己的类型。将其视为原始类型的别名。

  

“有没有办法将new_type作为字符串返回?”

因为它不是它自己的真实类型,没有。


请注意,typeid()内在函数的名称中包含 id ,这意味着它应始终为(有效)返回相同的标识符相同的类型。

我能想到达到你想要的唯一方法就是创建自己的包装器class / struct,其行为与int完全相同。但我怀疑这是值得的。