auto与 decltype 的区别

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

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

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

猜你喜欢

转载自blog.csdn.net/ws857707645/article/details/78764578
今日推荐