希望从表达式的类型推断出要定义的变量的类型,但是不想用该表达式的值初始化变量。
Decltype它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值:
Decltype(f()) sum=x; //sum的类型就是函数f 的返回类型
编译器并不实际调用函数f,而是使用当调用发生时f的返回值类型作为sum的类型。