《c++程序设计语言 第四版》12.1.4章节
后置返回类型在声明/定义函数时把返回值放在后面
auto getValue(int value)->int
{
return value*2;
}
这种用法主要用于模板,模板有时候不能确定返回值类型:
template<class T1,class T2>
auto getValue(T1 v1,T2 v2)->decltype (v1 + v2)
{
return v1 + v2;
}
#define debug qDebug()<<
int main(int argc, char *argv[])
{
debug getValue<int,int>(7,5.5);
debug getValue<int,double>(7,5.5);
}
这个函数如果是传入两个int那么返回值类型是int,传入一个int和一个double那么返回值类型是double。