【C++】decltype类型指示符

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wingrez/article/details/88046652

本文参考自《C++ Prime 第四版 中文版》


decltype类型指示符

1、C++11标准引入了decltype类型指示符,它的作用是选择并返回操作数的数据类型。

2、decltype让编译器分析表达式的值,但实际并不计算表达式的值。

3、如果decltype使用的表达式是一个变量,则decltype返回该变量的类型,包括顶层const和引用。

例如:

const int ci=0, &cj=ci;
decltype(ci) x=0; //x的类型是const int
decltype(cj) y=x; //y的类型是const int&

4、如果decltype使用的表达式不是一个变量,则decltype返回表达式结果对应的类型。如果表达式的内容是解引用操作,则decltype得到引用类型。

5、如果decltype使用的是一个不加括号的变量,则得到的结果就是该变量的类型。如果decltype使用的是一个加括号的变量,编译器会将其当作一个表达式,这样decltype将得到一个引用类型。

6、如果decltype使用的是函数,则decltype将得到函数的返回值类型。

例如:

int i=42, *p=&i, &r=i;
decltype(r+0) b; //b的类型是int
decltype(*p) c=i; //c的类型是int&
decltype((i)) d=i; //d的类型是int&
decltype(i) e; //e的类型是int

猜你喜欢

转载自blog.csdn.net/wingrez/article/details/88046652
今日推荐