decltype关键字可以让编译器找到一个表达式的类型。C++11以前无法通过对象来获得type,必须确实知道对象的类型才可以,以下为使用例子:

10. decltype关键字

    decltype主要有以下3种应用场景:

1.声明返回类型

这里是采用auto和->decltype指定了add函数返回类型的方式,即声明了add函数的返回类型

10. decltype关键字

2.应用于元编程(metaprogramming,就是在模板中的运用和操作)

10. decltype关键字

3.用于获得lambda表达式的类型

下面的cmp就是一个lambda对象,而lambda对象的类型一般很难写出,而在定义一个set对象的时候,又需要给出cmp的类型,因此这里用decltype来获取。

10. decltype关键字


相关文章: