set SEARCH_PATH to test_spect;
我收到以下错误:
错误:变量或字段' foo'宣布无效
错误:预期')'之前' a'
错误:预期')'之前' b'
在功能' int main()': 错误:' foo'未在此范围内声明
答案 0 :(得分:4)
模板中的T
和U
不是类型。您需要将其更改为:
template<typename T, typename U>
void foo(T a, U b) {
}
答案 1 :(得分:2)
模板参数可以是整数,例如:
template<int A, int B>
void bar()
{
std::cout << A+B << std::endl;
}
但是,您似乎希望在参数的类型上参数化您的方法,而不是整数值。正确的模板是:
template<typename T, typename U>
void foo(T a, U b)
{
std::cout << a+b << std::endl;
}
int main() {
bar<2,4>();
foo(2,4); // note: template parameters can be deduced from the arguments
return 0;
}