我讀的是如何在C++ typename關鍵字使用這種很好的總結:http://pages.cs.wisc.edu/~driscoll/typename.html的typedef資格依賴性類型
不過我想知道一個具體的例子:
template<typename T> class Outer{
public:
class Inner1{
T t;
};
class Inner2{
int t;
};
};
template<typename T> void foobar(void)
{
std::list<Outer<T>::Inner1> l;
}
從上面我明白鏈接的文本我需要
std::list<typename Outer<T>::Inner1> l;
因爲Inner1既合格又相關。
但是:Inner2也需要一個令我困惑的類型名稱: 首先,它似乎很清楚Inner2是一種類型(好吧,Inner1已經清楚了)。其次,Inner2根本不依賴T.對於所有可能的Ts,Inner2將是相同的(類型)!
當我在模板中使用限定類型時,是否需要typedef?是否依賴於模板參數?
'對於所有可能的TS,Inner2將是相同的(類型)' - 不,考慮類模板特! –