從c++11起,auto
關鍵字不再表示儲存型別,而是成為了隱式型別定義關鍵字,其作用是讓編譯器在編譯期 便自動推斷出變數的型別。例如:
auto a = 1; // a 為 int 型變數
auto ptr = new auto( 1 ); // auto(1)==>int(1), ptr 為 int 型指標變數
const auto * q = &a, d = 1; // q 為 const int 型指標變數,d 後的 *= 1* 不可少
auto int b; // 錯誤:auto 不再表示儲存型別
auto c; // 錯誤:編譯器無法在編譯期自動推斷 c 的型別
在一行中定義多個變數時,自第二個變數開始,必須都賦初值,即便auto
可以依據第乙個變數的賦值推斷出來。
(未完)
C 11 auto自動型別推導
1.auto型別推導auto x 5 正確,x是int型別 auto pi new auto 1 正確,批是int const auto v x,u 6 正確,v是const int 型別,u是const int static auto y 0.0 正確,y是double型別 auto int r ...
C 11 14特性備忘
template auto add t x,u y int array for auto x array include 建構函式列表初始化 class magic magic magic std vector int v 普通函式形參 void func std initializer list ...
模板型別推導 auto推導
effective modern c 果然是神書,乾貨滿滿,簡單記錄下。item1 模板推倒 典型的模板函式 temlate void fn paramtype param 要記住的東西 在模板型別推導的時候,有引用特性的引數的引用特性會被忽略 在推導通用引用引數的時候,左值會被特殊處理 在推導按值...