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

标签 c++ typedef typeid

这是我的问题:

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

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/

相关文章:

c++ - type_info 指针可以用来区分 C++ 中的类型吗?

c++ - 错误的异常类型信息名称

C++:type_info 区分类型

c++ - 析构函数和 unique_ptr

c - 这个 typedef 怎么可能?

c - 使用 typedef 结构时出现未知类型错误

c++ - 在我的命名空间中公开外部库类时使用 typedef 或 using 关键字

c++ - 二叉树指针错误

c++ - memcpy pod 结构数组到数组

c++ - 指向同一内存的不同类型的两个二维数组