decltype
语法
decltype ( entity ) (1) (since C++11)
decltype ( expression ) (2) (since C++11)
- 如果entity是没有用括号包起来的(id-expression或者class member),则返回的类型是对应entity声明的类型。
- 如果expression 为普通的表达式:
- 左值,返回类型为: T&
- xvalue,返回类型为: T&&
-
prvalue,返回类型为: T
#include <iostream> using namespace std; int main(){ int a=10; decltype(a) b=a; //int b=20; cout<<a<<" "<<b<<endl; //10 20 decltype((a)) c=a; //int& c=30; cout<<a<<" "<<b<<" "<<c<<endl; //30 20 30 return 0; }