c++11关键字

发布时间 2023-09-03 17:44:24作者: ddup123

decltype关键字:查询关键字的数据类型

# 语法: decltype(expression) var;
1)如果expression是没有用括号括起来的标识符(不包括decltype本身的括号,则var的类型与该标识符的类型相同,包括const等限定符,注意如果返回值为引用时需要先初始化
2)如果expression是函数调用,则var的类型与函数的返回值类型相同(函数不能返回void,但可以返回void,注意:参数为函数名()得到的是函数返回值,没有括号得到的是函数类型
3) 如果expression是左值 (能取地址)、或者用括号括起来的标识符,那么var的类型是expression的引用。
例:
decltype((a)) var=a;或decltype(++a) var=a;//引用需要先初始化
4)如果上面的条件都不满足,则var的类型与expression的类型相同。