我读的是如何在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将是相同的(类型)' - 不,考虑类模板特! –