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

How to use typeid to get the type name which defined use typedef

本文关键字:定义 类型 typedef 何使用 typeid 获取      更新时间:2023-10-16

这是我的问题:

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

typedef int new_type;
new_type value;

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

typeid(value)

它将返回int,而不是new_type。

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

谢谢!

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

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

由于它不是自己的真实类型,所以没有。


请记住,typeid()内在的名称中有id,这意味着它应该始终为(有效地)相同的类型返回相同的标识符

我能想到的实现您想要的东西的唯一方法是创建自己的包装器class/struct,它的行为与int完全一样。但我怀疑这些努力是否值得。