我的问题是: 我定义了一个新类型,并使用该新类型声明了一个变量: typedef int new_type; new_type value; 我需要使用typeid获取new_type的字符串,但如果我使用: typeid(value) 它将返回 int,而不是 new_type。 有没有办法将 new_type 以字符串的形式返回? 谢谢!
typedef并非自己的类型,而是原始类型的别名。考虑它是原始类型的替身。 "有没有办法将new_type作为字符串返回?" 由于它不是自己的实际类型,所以不行。 请记住,typeid()内部函数中有id,这意味着它应该始终返回(实际上)相同类型的相同标识符。我能想到的唯一方法是创建一个行为与int完全相同的包装器class / struct。 但我怀疑这样做是否值得努力。
typeid
来实现这个。也许预处理器的字符串化会适合你? - lisyarustypeid(value)
(带有变量!)。 - πάντα ῥεῖtypeid()
。 - πάντα ῥεῖ