【发布时间】:2017-05-21 00:20:14
【问题描述】:
我正在研究模板函数和搜索,试图让它工作几个小时但我找不到。
#include <iostream>
using namespace std;
template<typename A, typename B, typename C>
C add (A a, B b){
return a + b;
}
int main() {
int x = 1;
float y = 2.5;
float z = add(x,y);
cout << "z is: " << z ;
return 0;
}
我找到的另一个解决方案是
template <type name A, typename B>
auto add(A a, B b){
return a + b;
}
int main() {
int x = 1;
float y = 2.5;
cout << add(x,y);
}
第二个代码工作正常,无论我设置什么参数类型,返回类型都会自动更改。但是,当我为返回类型的 add 函数再添加一个 <typename C> 时,它会显示错误消息。如何让它在主函数中运行?
【问题讨论】:
-
对于第一个代码,您需要明确指定模板参数,例如
float z = add<int, float, float>(x,y);。
标签: c++ c++11 templates return-type typename