auto與 decltype 的區別

2021-08-13 08:03:32 字數 240 閱讀 4808

第一,auto型別說明符讓編譯器通過初始值推斷其型別,而decltype雖然也讓編譯器分析表示式,但並不實際計算表示式的值。

第二,編譯器推斷出來的auto型別有時候與初始值型別不太一樣,編譯器會適當改變結果型別使其更符合規則。比如,auto會忽略頂層const。而decltype會保留頂層const。

第三,decltype的結果型別與表示式形式密切相關,如果是一層括號,得到的型別就是該變數的型別。如果是雙層括號,最推斷出引用型別。

auto 和 decltype的區別

auto和decltype都是型別推斷的兩種方式,但之間又有區別。主要有這幾個方面的區別 1.auto是通過編譯器計算變數的初始值來推斷型別的,decltype同樣也是通過編譯器來分析表示式進而得到它的型別,但是它不用將表示式的值計算出來。2.編譯器推斷出來的auto型別有可能和初始值型別不同,比如...

auto 和 decltype 的區別

auto 和 decltype 都是型別推斷的方式 區別如下 1 auto 是通過編譯器計算變數的初始值來推斷型別,decltype同樣也是通過編譯器來分析表示式進而得到它的型別,但是它不用將表示式的值計算出來 2 編譯器推斷出來的auto型別可能與初始值型別不同,眾多周知,使用引用實際是使用引用的...

C 中關鍵字auto和decltype的區別

c 11標準引入了auto和decltype型別說明符,它能讓編譯器幫我們去分析表示式所屬的型別。auto和decltype的主要區別有三個方面 第一,auto型別說明符用編譯器計算變數的初始值來推斷其型別,而decltype雖然也讓編譯器分析表示式並得到它的型別,但是不實際計算表示式的值。第二,編...