这是我的问题:
我定义了一个新类型并使用新类型来声明变量:
typedef int new_type;
new_type value;
我需要以某种方式使用typeid将new_type作为字符串返回,但如果我使用:
typeid(value)
它将返回int,而不是new_type。
有没有办法将new_type作为字符串返回?
谢谢!
答案 0 :(得分:4)
typedef
不是他们的自己的类型。将其视为原始类型的别名。
“有没有办法将new_type作为字符串返回?”
因为它不是它自己的真实类型,没有。
请注意,typeid()
内在函数的名称中包含 id
,这意味着它应始终为(有效)返回相同的标识符相同的类型。
我能想到达到你想要的唯一方法就是创建自己的包装器class
/ struct
,其行为与int
完全相同。但我怀疑这是值得的。