常用的函数返回类型一般是在前面即void function();。但是C++11新增了语法,函数返回类型声明后置,在函数名和参数列表后面返回指定类型。C++函数返回类型后置一般用于模板函数中,可以提前返回编译器还没编译开始的类型。
#include <iostream>
//编译器在遇到f3的参数列表前,T和U还不在作用域内,因此在参数列表后使用decltype
template<typename T, typename U>
auto f3(T t, U u)->decltype(T*U) //decltype强制类型转换,转换为(T*U)类型
{
return t*u;
}
int main()
{
double f1(int); //函数返回类型前置,常用法
auto f2(int)->double; //函数返回类型后置,C++11新增用法
system("pause");
return 0;
}
参考内容:
《C++ Primer Plus》(第6版)中文版 797-798页(参考:返回类型后置)