資料型別自動
此示例顯示了編譯器可以執行的基本型別推斷。
auto a = 1; // a = int
auto b = 2u; // b = unsigned int
auto c = &a; // c = int*
const auto d = c; // d = const int*
const auto& e = b; // e = const unsigned int&
auto x = a + b // x = int, #compiler warning unsigned and signed
auto v = std::vector<int>; // v = std::vector<int>
但是,如果沒有 &
或 const
或 constexpr
的附加提示,auto 關鍵字並不總是執行預期的型別推斷
// y = unsigned int,
// note that y does not infer as const unsigned int&
// The compiler would have generated a copy instead of a reference value to e or b
auto y = e;