学习地址: http://c.biancheng.net/view/3730.html
1. C++返回值类型后置(跟踪返回值类型)
eg:
template <typename R, typename T, typename U>
R add1(T t, U u)
{
return t+u;
}
void testAdd1() {
int a = 1;
float b = 1.0;
auto result = add1<decltype(a+b)>(a, b);
}
- 上面的表达式看着是没问题的, decltype(a+b)可以推导出来返回值,但是有问题外部人员怎么会知道里面做的是a+b ?
- 返回类型后置(trailing-return-type,又称跟踪返回类型)语法,将 decltype 和 auto 结合起来完成返回值类型的推导
template <typename T, typename U>
auto add2(T t