2010-10-30 134 views

回答

3

正確的形式是不帶括號

typename T::ABC 

因爲括號

(typename T::ABC) 

形式爲鑄造運營商,不是一個類型!

而且,關鍵字typename是必需的因爲T:ABC是「依賴型」:如果不使用typename,表達T:ABC被解釋爲如果ABC是類T的成員,並且不嵌套型) 。

3

使用typename關鍵字:

template<typename T> 
typename T::ABC& get(); 
1

它必須是:

template<typename T> 
typename T::ABC& get(); 

但I T裏德,這不工作:

template<typename T> 
(typename T::ABC)& get(); 
+0

是的,我也試過,意識到這一點。我不知道爲什麼它不支持括號! – James 2010-10-30 17:16:23