这是代码:
template <typename T>
struct Outer {
struct InnerBase {
int n;
InnerBase() : n(42) { }
};
struct InnerChild : InnerBase {
int getN() { return n; }
};
};
这就是问题所在:
In member function 'int Outer<T>::InnerChild::getN()':
error: 'n' was not declared in this scope
如果Outer
不是模板,一切正常。怎么会这样?如何在模板中修复它?