c++11引入了類型自動判斷功能,使用auto關鍵字用於變量聲明時根據表達式自動推斷該變量類型或者做爲函數返回值的佔位符。ios
使用auto從初始化表達式中推斷出變量的數據類型。c++
#include <iostream> using namespace std; int main() { auto a = 10; auto b = 1; auto s = a + b; cout << s <<endl; return 0; } /* 輸出: 11 */
auto主要與decltype關鍵字配合使用,做爲返回值類型後置時的佔位符。此時,關鍵字不表示自動類型檢測,僅僅是表示後置返回值的語法的一部分。數組
template<class T, class U> auto add(T a, U b) -> decltype(a + b) { return a + b; }
1.使用auto必須有初始化值函數
2.函數參數和模板參數不能被聲明爲autospa
3.使用auto進行類型推導時,編譯器自動忽略頂層const,除非顯示聲明指針
4.使用auto進行類型推導時,若是初始化表達式時引用類型,編譯器會去除引用,除非顯示聲明c++11
5.數組類型,auto會推導爲指針類型,除非被聲明爲引用code