如何使用类模板作为函数参数?
我有一个按照以下方式声明的类
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);
,但遇到了同样的错误。我该如何解决这个问题?
I have a class declared along the lines of
template<int a, int b>
class C {
public:
array[a][b];
}
and I want to use it as argument in a function like this:
bool DoSomeTests(C &c1, C &c2);
but when I compile, it tells me 'use of class template requires template argument list.' I tried
template<int a, int b>
bool DoSomeTests(C &c1, C &c2);
but I get the same error. How can I fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要在
DoSomeTests
的声明中向类模板C
提供参数:类模板
C
和函数模板DoSomeTests
采用两个int
模板参数,但编译器无法推断出您要将它们从函数模板映射到C
的事实。You need to provide arguments to the class template
C
in the declaration ofDoSomeTests
:Both the class template
C
and your function templateDoSomeTests
take twoint
template parameters but the fact that you want to map them from the function template toC
can't be inferred by the compiler.