C++ 如何使用类模板作为函数参数?
我有一个类是按照C++ 如何使用类模板作为函数参数?,c++,templates,function-templates,C++,Templates,Function Templates,我有一个类是按照 template<int a, int b> class C { public: array[a][b]; } 但当我编译时,它告诉我“使用类模板需要模板参数列表” template<int a, int b> bool DoSomeTests(C &c1, C &c2); 模板 布尔剂量仪(C&c1、C&c2); 但我也犯了同样的错误。如何解决此问题?您需要在DoSomeTests的声明中为类模板C提供参数: templa
template<int a, int b>
class C {
public:
array[a][b];
}
但当我编译时,它告诉我“使用类模板需要模板参数列表”
template<int a, int b>
bool DoSomeTests(C &c1, C &c2);
模板
布尔剂量仪(C&c1、C&c2);
但我也犯了同样的错误。如何解决此问题?您需要在
DoSomeTests
的声明中为类模板C
提供参数:
template<int a, int b>
bool DoSomeTests(C<a, b> &c1, C<a, b> &c2);
模板
布尔剂量仪(C&c1、C&c2);
类模板
C
和函数模板DoSomeTests
都有两个int
模板参数,但是编译器无法推断您想要将它们从函数模板映射到C
的事实。您需要在剂量计测试声明
:
template<int a, int b>
bool DoSomeTests(C<a, b> &c1, C<a, b> &c2);
模板
布尔剂量仪(C&c1、C&c2);
类模板
C
和函数模板DoSomeTests
都有两个int
模板参数,但编译器无法推断您想将它们从函数模板映射到C
的事实。谢谢,现在我看它似乎很明显。无法推断它的原因是,你很可能是有意的:bool DoSomeTests(C&c1,C&c2)
。这可能看起来很愚蠢,但想想矩阵/向量乘法;)如果不同的a
和b
之间的依赖性不是微不足道的,您甚至可以使用一些enable_if
在编译时进行类型检查。谢谢,现在我看了它,它似乎很明显。无法推断它的原因是您很可能是有意的:bool DoSomeTests(C&c1,C&c2)
。这可能看起来很愚蠢,但想想矩阵/向量乘法;)如果各种a
和b
之间的依赖性不是微不足道的,那么您甚至可以使用一些enable_if
在编译时进行类型检查。