下述内容,均从C++Primer进行摘录总结
尾置返回类型是C++11新标准中简化声明函数的方法。常规情况下,如果我们想要定义一个返回数组指针的函数,是比较麻烦的,但通过使用尾置返回类型,就变得容易许多。
定义一个返回数组指针的函数我们可以使用一下三种方法:
①常规方法:声明一个返回数组长度为10的整形数组
int (*func(int i))[10]
//func(int i) 表示调用func函数时需要一个int类型的实参
//(*func(int i)) 意味着我们可以对函数调用结果执行解引用
//(*func(int i))[10] 调用结果返回大小为10数组
//int (*func(int i))[10] 数组元素为整形
②使用
typedef或using关键字
typedef int arrT[10];
//等价于 using arrT = int[10];
arrT* func(int i); //声明func函数
③使用
尾置返回类型
auto func(int) -> int(*)[10]; //声明Func函数
此外,我们还可以在
模板中使用尾置返回类型
//示例中模板接受一对迭代器和返回序列中的一个解引用
template <typename It>
auto fcn(It beg, It end) -> decltype(*beg)
{
return *beg; //返回序列中一个元素的引用
}