auto与 decltype 的区别

来源:互联网 发布:网络骗局如何报警 编辑:程序博客网 时间:2024/05/29 15:55

第一,auto类型说明符让编译器通过初始值推断其类型,而decltype虽然也让编译器分析表达式,但并不实际计算表达式的值。

第二,编译器推断出来的auto类型有时候与初始值类型不太一样,编译器会适当改变结果类型使其更符合规则。比如,auto会忽略顶层const。而decltype会保留顶层const。

第三,decltype的结果类型与表达式形式密切相关,如果是一层括号,得到的类型就是该变量的类型。如果是双层括号,最推断出引用类型。

原创粉丝点击