出乎意料C++
-  
类型 decltype
 
int i = 4;
decltype (++i) v8 = i;
请问 : v8 的类型是什么?
错误:i 是 int, ++i 还是 int, 所以 v8 也是 int
正确:
前置递增:++i 首先将变量 i 的值增加1,然后返回增加后的引用(即 int& 类型)。
因此,++i 的类型是 int&,即一个指向整数的引用。
由于 decltype 直接根据表达式来确定类型而不实际执行该表达式,所以 decltype (++i) 的类型就是 ++i 表达式的类型,也就是 int&。
关键: 理解前置++(++i)的返回值是 i 的引用,后置++(i++)的返回值是和 i 相同的临时变量
