C++函数返回类型后置用法(decltype)

时间:2025-03-08 20:52:32

常用的函数返回类型一般是在前面即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页(参考:返回类型后置)