1. auto 類型說明符
作用:auto 讓編譯器通過初始值來推算變量的類型。但是,編譯器推斷出來的 auto 類型有時候和初始值的類型並不完全一樣,編譯器會適當地改變結果類型使其更符合初始化規則。
注意:
- auto 定義的變量必須有初始值。
- 不能爲非常量引用綁定字面值:auto & h = 42; ( × )
- 如果希望推斷出的 auto 類型是一個頂層const,需要明確指出,eg:const int ci = i,& cr = ci; const auto f = ci;
2. decltype 類型指示符
作用:選擇並返回操作數的數據類型。在此過程中,編譯器分析表達式並得到它的類型,卻不實際計算表達式的值:
eg:的處理type(f()) sum = x; // sum的類型就是函數f的返回類型