#include<iostream>
using namespace std;
template <typename X,typename Y>
auto f(X x,Y y)->decltype(x+y)
{
return x + y;
}
int main()
{
int x = 1;
double y = 1.1;
//这两种都行
auto d = f<int, double>(x, y);
auto d = f(x, y);
cout << d;
return 0;
}
有什么用?
可以让复杂的返回值类型看起来清新,容易理解
比如:函数指针(函数指针不懂看我前面章节)
#include<iostream>
using namespace std;
typedef int(*k)(int);
int g(int value)
{
cout << value << endl;
return value;
}
auto f(k a,int value)->k
{
a(value);
return a;
}
int main()
{
cout<<f(g,100);
return 0;
}