嵌套类型作为基类的模板参数

slu*_*uki 6 c++ templates

可能吗?

例:

template<class T>
class A {};

class B : public A<B::C>
{
public:
  struct C {};
};
Run Code Online (Sandbox Code Playgroud)

问题是B :: C是未声明的标识符(这是明显的原因),我不知道如何使其工作.总结:B可以从A派生,模板参数设置为C吗?

dom*_*om0 5

此时编号B不完整,因为您还没有定义它应该继承的类.因此,B::C这里不可能引用(嵌套类/结构依赖于它们的封闭类/结构的完整定义,因为嵌套类型可能并且通常依赖于封闭类的定义).