2014-09-05 36 views
3

這裏的類型名稱是我的問題:如何使用的typeid獲得其定義使用的typedef

我定義了一個新的種類和使用的新類型來聲明一個變量:

typedef int new_type; 
new_type value; 

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

typeid(value) 

它將返回int而不是new_type。

有沒有辦法讓new_type返回字符串?

謝謝!

+0

不太確定,但在我看來,沒有辦法使用'typeid'來做到這一點。預處理器的字符串大概會適合你嗎? – lisyarus 2014-09-05 16:32:19

+0

@lisyarus CPP字符串不會幫助,因爲重點是使用'typeid(value)'(與變量!)。 – 2014-09-05 16:42:48

+0

你想用這種方法解決問題到底是什麼?可能有更好的方法,而不是使用'typeid()'。 – 2014-09-05 16:55:32

回答

4

typedef的不是他們的自己的類型。把它看作原始類型的別名。

「有沒有辦法讓new_type返回字符串?」

因爲它不是一個真正的類型它自己的,沒有。


記住typeid()內在有它的名字id,這意味着它應該始終返回相同標識符的(有效)同一類型。

我能想到的唯一方法就是實現你想要的效果,創建自己的包裝class/struct,其行爲完全像int。但我懷疑這是值得的努力。