C++子类是否可以共享相同的模板?

poy*_*poy 4 c++ templates scope nested-class

子类是否可以共享相同的模板?例如:

template <class T>
class A
{
private:
  T _aObj;
public:
  class B
  {
  public:
    T _bObj;
  };
};
Run Code Online (Sandbox Code Playgroud)

哪里可以使用T AB

当我尝试这个时,我收到以下错误:

错误:A :: B不是模板

orl*_*rlp 6

是的,工作正常(在符合标准的编译器上).

一种思考为什么这是合乎逻辑的方式是因为B它不是简单的一部分A,而是它的一部分A<T>!T不仅是类型的一部分A,而且也是B(正确的名称A<T>::B).