c++14在模板的返回类型上的改进

在祁宇的<深入应用c++11>书中,第一章介绍了auto,decltype和返回类型后置的语法.不过,其返回类型后置的介绍早就过时了.

c++11中的返回类型后置用于模板类的返回类型推导,并解释为在编译时,不能对默认的前置返回类型进行估计.典型示例代码如下:

#include <iostream>
using namespace std;
template <class T1,class T2>
auto add(T1 t1, T2 t2)->decltype(t1+t2)
{
	return t1+t2;
}
int main()
{
	auto t1=2.5;
	auto t2=3;
	auto rst=add(t1,t2);
	cout<<rst<<endl;
	return 0;
}

其中add函数的返回类型就进行了后置,用decltype进行了推导.

这个操作仅仅是一个过渡的方法,c++14能完美的解决这个问题.代码如下

template <class T1,class T2>
auto add(T1 t1, T2 t2)
{
	return t1+t2;
}

去掉返回类型后置一样可以编译通过并得到正确的计算结果.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值