返回操作数的数据类型,如
decltype(f()) sum=0;
与auto不同,decltype会保留所有的const属性
decltype和引用
int a=0,&b=a,*c=&a;
decltype(b)为 int& //保证与原类型相同
decltype(b+0)为int //表达式的返回值为int
decltype((a))为int& //变量加()这个整体被认为是表达式,表达式的返回值为引用,这是规定
decltype(*c)为int& //众所周知,指针解引用可以修改原变量的值,因此类型应该是引用