请考虑以下代码:
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>
我该怎么做?
答案 0 :(得分:3)
语法为:
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