函数声明有两种语法:
常规:
返回类型 函数名(参数类型 参数名);
return_type functionName ( ArgType arg);
C++11引入了新的函数声明语法:
auto 函数名(参数类型 参数名)->返回类型
auto functionName(ArgType arg)->return_type
{
}
auto为占位符,函数名后->紧跟返回类型。该语法可以返回常规语法中无法返回的类型。
- 返回函数指针
double test(int)
{
return 1.0;
}
auto returnPtr()->double(*)(int)
{
return test;
}
- 推导函数模板返回类型(搭配
decltype
关键字)
template<class T1, class T2>
auto sum1(T1 t1, T2 t2)->decltype(t1 + t2)
{
return t1 + t2;
}
网友评论