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

时间:2014-10-08 11:34:22

标签: c++ templates

有可能吗?

示例:

template<class T>
class A {};

class B : public A<B::C>
{
public:
  struct C {};
};

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

1 个答案:

答案 0 :(得分:5)

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