如何使用类模板作为函数参数?

时间:2010-05-03 20:09:05

标签: c++ templates function-templates

我有一个按照

的方式声明的类
template<int a, int b>
class C {
public:
    array[a][b];
}

我希望在这样的函数中使用它作为参数:

bool DoSomeTests(C &c1, C &c2);

但是当我编译时,它告诉我'使用类模板需要模板参数列表。'我试过了

template<int a, int b>
bool DoSomeTests(C &c1, C &c2);

但是我得到了同样的错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

您需要在C声明中为类模板DoSomeTests提供参数:

template<int a, int b>
bool DoSomeTests(C<a, b> &c1, C<a, b> &c2);

类模板C和您的函数模板DoSomeTests都需要两个int模板参数,但您希望将它们从函数模板映射到C的事实可以不能由编译器推断。