这是我的问题:
我定义了一个新类型并使用新类型声明了一个变量:
typedef int new_type;
new_type value;
我需要以某种方式使用 typeid 将 new_type 作为字符串返回,但是如果我使用:
typeid(value)
它将返回 int,而不是 new_type。
有没有办法将 new_type 作为字符串返回?
谢谢!
最佳答案
typedef
不是它们的自己的类型。将其视为原始类型的别名。
"Is there a way to get new_type as a string back?"
因为它不是它自己的真实类型,所以不是。
请记住,typeid()
内部函数的名称中包含 id
,这意味着它应该始终返回相同的标识符 用于(有效地)相同的类型。
我能想到的实现你想要的唯一方法是创建你自己的包装器 class
/struct
其行为与 int
。但我怀疑这些努力是否值得。
关于c++ - 如何使用 typeid 获取使用 typedef 定义的类型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25690235/