模板类如何从嵌套模板类继承
How can a template class inherit from a nested template class
考虑以下代码:
template<class C, class P>
//class Cchild : public C::NestedClass // Works
class Cchild : public C::NestedTemplateClass<P> // Fails : how to inherit from nested template class defined in C ?
{
};
编译器在模板类Cchild
继承嵌套类C::NestedClass
时编译得很好。但是,如果我想要Cchild
从嵌套的模板类C::NestedTemplateClass<P>
继承,则无法编译
语法为:
template<class C, class P>
class Cchild : public C::template NestedTemplateClass<P>
{
};
来自gcc的错误信息实际上是相当可读的:
t.C:3:26: error: non-template ‘NestedTemplateClass’ used as template
class Cchild : public C::NestedTemplateClass<P>
^~~~~~~~~~~~~~~~~~~
t.C:3:26: note: use ‘C::template NestedTemplateClass’ to indicate that it is a template
相关文章:
- C++从外部类继承的嵌套类;不允许使用不完整的类型
- 嵌套类、继承和C++中的共享指针
- 如何重写继承的嵌套类中存在的虚拟方法
- 返回自身内部的双重嵌套类的成员函数,该类继承自从自身继承的类
- 嵌套结构属性继承
- C++嵌套类从嵌套类继承,请键入 issue
- 如何解释嵌套继承类结构?
- 继承和嵌套名称的陷阱
- 嵌套类继承的错误
- 嵌套类和继承
- 为什么 Visual C++无法编译从私有嵌套类继承的友元模板
- 继承类中嵌套类的可见性
- 为什么 GCC 允许从私有嵌套类继承
- 为什么 GCC 不允许在你是朋友时从私有嵌套类继承
- 在 C++11 中,从私有嵌套类型继承是否合法?
- C++ 嵌套前向声明继承
- 不直观的嵌套类继承
- 我应该在 c++ 中的派生类中继承嵌套类吗?
- 继承嵌套模板类的实现
- 继承嵌套类时出现C4091错误