返回类型后置 和 auto推导返回值类型
C++11 引入了 返回类型后置(Trailing Return Type)语法,允许将函数的返回类型放在参数列表之后,使用 ->
符号指定。
(1) 依赖参数的类型推导(Decltype 结合)
template <typename T, typename U>
auto add(T a, U b) -> decltype(a + b) {return a + b;
}// 调用
auto result = add(3, 4.5); // result 是 double
2) 简化复杂返回类型
(3) Lambda 表达式
Lambda 的返回类型默认可以自动推导,但如果需要显式指定,必须用后置语法:
auto lambda = [](int x) -> double {return x * 1.5;
};
auto
自动推导返回值
C++14 允许 auto
自动推导返回类型