1、auto类型推导
auto varname = value;
auto 根据=右边的初始值value推导出变量的类型
2、decltype类型推导
decltype(exp) varname = value;
decltype根据exp表达式推导出变量的类型,跟=右边的value没有关系。
3、auto与decltype结合类型推导
auto此时不表示自动类型检测,作为返回值类型后置时的占位符,是表示后置返回值的语法的一部分。
decltype声明返回值类型。
例:
template<class T, class U>
auto add(T t, U u) -> decltype(t + u)
{
return t + u;
}
总结:
1、注意第三条,auto作为函数返回值类型占位符的用法。
参考资料:
1、 auto类型推导
2、函数返回值类型占位符