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

发布于 2024-08-31 20:55:13 字数 372 浏览 5 评论 0原文

我有一个按照以下方式声明的类

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

念﹏祤嫣 2024-09-07 20:55:13

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

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

类模板 C 和函数模板 DoSomeTests 采用两个 int 模板参数,但编译器无法推断出您要将它们从函数模板映射到 C 的事实。

You need to provide arguments to the class template C in the declaration of DoSomeTests:

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

Both the class template C and your function template DoSomeTests take two int template parameters but the fact that you want to map them from the function template to C can't be inferred by the compiler.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文