decltype类型指示符
作用是选择返回操作数的数据类型,分析表达式得到它的类型,但不得到它实际的值
例: decltype(fun()) sum = x //sum的类型就是函数的返回类型如果decltype使用的表达式是一个变量,则decltype返回该变量的类型(包括顶层
- const 和引用在内)
- const int a = 0, &b = a;
- decltype(a) x = 0; //x的类型是const int
- decltype(b) y = x; //y的类型是const int&,y绑定到变量x
- 对于decltype,如果变量名加上一对括号,得到的类型与不加括号时会有所不同,如果给变量名加上了一层或多层括号,就会得到引用类型
- decltype((i)) a = c; //结果是引用
- decltype(i) b; decltype((val))的结果永远都是引用