Effective Modern C++學習總結

C++11/14的發佈是C++發展的里程碑,成爲了現代的編程語言。和Java8一樣,極大豐富了語言的能力,更加高效的利用CPU及硬件的性能。最近讀了經典書籍《Effective Modern C++》,在此總結一下。書中源代碼可以參考

https://github.com/BartVandewoestyne/Effective-Modern-Cpp 

 

1 型別推導,包括auto/decltype;

2 空指針nullptr,取代了老的不好用的0和NULL;

3 優先選用別名聲明using,而非typedef;

4 智能指針升級:unique_ptr/ shared_ptr / weak_ptr;有力的避免了內存泄漏的問題;

5 針對右值引用實施std::move,針對萬能引用實施std::forward;避免了無謂的複製,有效的提高了性能;

6 優先選用lambda表達式,而非std::bind;

7 全新的跨平臺的併發API,使用std::thread/ std::async進行多線程開發;對併發使用std::atomic,對特殊內存使用volatile;

8 增加了可變參數模板,使得泛型編程能力更加強大,大幅消除了重複模板定義;

9 C++過去僅僅支持類模板可以有默認的模板參數;C++11現在支持函數的默認模板參數;

10 C++中,初始化列表的適用性被大大的增加了;

其中的lambda表達式,for-loop循環,tuple,初始化列表等特性和Java8等高級語言相似,使得學習編寫C++程序更加簡潔和順手。而且各種語言通學通用,相互比較,融匯貫通。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章