条款42:了解 typename 的双重含义
template<class T> class Widget;
template<typename T> class Widget;必须使用 typename 的时候
template<typename C>
void prin2nd(const C& container) {
C::const_iterator* x; // 嵌套从属名称
}template<typename T>
class Derived: public Base<T>::nested { // base class list 中;
public:
explicit Derived(int x): Base<T>::Nested(x) { // mem. init. list 中;
typename Base<T>::Nested temp;
}
};Last updated