C++11 new feature

  1. C++11 在類中引入了Move Constructor and the Move Assignmnt Operaetor,所謂‘move’指的是在複製對象時,left object 不用再建立資源,直接把right object 的資源當作本身的來用。而right object 的資源將所有被設置爲default ,即爲empty object 。
    1. http://blog.smartbear.com/c-plus-plus/c11-tutorial-introducing-the-move-constructor-and-the-move-assignment-operator/
  2. 引入了關鍵字auto 和 decltype ,有了auto能夠在定義變量時不用指出變量的類型,編譯器本身推斷出變量的類型。auto 的最大用我本身感受有兩點: (1)有些太長的類型好比STL的一些迭代器的類型定義時能夠省去左邊的長串字符的書寫,由編譯器本身去推斷類型;(2)當auto 和template結合在一塊兒時能夠寫出更加靈活的代碼,此時可能須要藉助decltype來推測輸出的類型。
    1. http://blog.smartbear.com/c-plus-plus/c11-tutorial-let-your-compiler-detect-the-types-of-your-objects-automatically/
    2. http://blog.csdn.net/fire_lord/article/details/8499596
  3. 類的繼承控制關鍵字:override 和 final .在類的繼承中有時須要在derived的class中對虛函數進行重寫,但這個地方很容易出現錯誤是的derived class 中「重寫」的函數和based class的函數簽名不一致,使得本來打算進行的重寫變成了定義新的函數。若是加了override關鍵字,編譯器會自動檢查函數簽名是否和based class的函數簽名是否一致。而final關鍵字則使得類和類中一些函數不能再繼承。要注意下這兩個關鍵字不是reserved keyword 而是 CSK(context sensitive keywords),即只有在適當的contex下才會被當作keyword .
    1. http://blog.smartbear.com/c-plus-plus/use-c11-inheritance-control-keywords-to-prevent-inconsistencies-in-class-hierarchies/
    2. http://blog.csdn.net/fire_lord/article/details/8540592
  4. Lambda Expressions (匿名函數)。語法結構:[capture clause](parameters)->return-type{body} 。有人說引入這主要緣由是function programering 的流行,可能我本身對於函數式編程不是很瞭解,因此沒法領會它的強大。lambda Expessions有三個優點:1)提供了比function class 更加convinent 的工具,由於其不用定義構造函數以及member,2)編譯器對其做出的優化比通常的函數更大;3)其比通常的函數有更大的security,由於lambda expession 是local的。 
    1. http://blog.smartbear.com/c-plus-plus/c11-tutorial-lambda-expressions-the-nuts-and-bolts-of-functional-programming/
    2. http://ciere.com/cppnow12/lambda.pdf
    3. http://blog.csdn.net/srzhz/article/details/7934652
  5. 強類型的enum,主要解決enum 的命名衝突問題。定義時須要在enum後面加上class 關鍵字。不過強類型的enum不支持和int 的轉換,剛習慣的enum在類中定義數組的長度以及索引,看來仍是要使用old enum style 來進行。
    1. http://blog.smartbear.com/c-plus-plus/closer-to-perfection-get-to-know-c11-scoped-and-based-enum-types/
  6. right reference 
    1. http://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers
  7. constexpr 
    1. http://blog.smartbear.com/c-plus-plus/using-constexpr-to-improve-security-performance-and-encapsulation-in-c/

 

 

 

http://msdn.microsoft.com/en-us/library/vstudio/hh279654.aspxhtml

http://www.cnblogs.com/hujian/archive/2012/12/08/2809298.htmlexpress

http://www.codeproject.com/Articles/570638/Ten-Cplusplus11-Features-Every-Cplusplus-Developer編程

http://blog.smartbear.com/c-plus-plus/the-biggest-changes-in-c11-and-why-you-should-care/數組

http://blog.csdn.net/fire_lord/article/category/1324600ide

相關文章
相關標籤/搜索