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

Nested type as template parameter of base class

本文关键字:参数 基类 嵌套类型      更新时间:2023-10-16

有可能吗?

示例:

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

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

否。B在这一点上是不完整的,因为您还没有定义它应该从中继承的类。因此,这里不可能引用B::C(嵌套类/结构依赖于其封闭类/结构的完整定义,因为嵌套类型可以而且经常依赖于封闭类型的定义)。