我有一个依赖于另一个模板类的模板类。 TemplateClassB如何使用TemplateClassA类型TypeA?模板类如何在C++中使用另一个模板类中的类型?
template <int L>
class TemplateClassA {
public:
typedef unsigned TypeA;
};
template <typename E, typename F>
class TemplateClassB {
TemplateClassA::TypeA var; //error: invalid use of template-name 'TemplateClassA' without an argument list
};
int main(){
TemplateClassA<1> A = TemplateClassA<1>();
}
您需要在'var'的声明中为'TemplateClassA'指定一个模板参数,并使用'typename' – Brian
请称它们为“class templates”。他们是制作课堂的模板,而不是一个有趣的课堂。 –
可能的重复[哪里,为什么我必须把“模板”和“typename”关键字?](http://stackoverflow.com/questions/610245/where-and-why-do-i-have-to -put-the-template-and-typename-keywords) – Constructor