【Effective Modern C++】索引
- 本書講述了C++11/14新特性的用法和原理。
1. 型別推斷
- 01 理解模板型別推斷
- 02 理解auto型別推斷
- 03 理解decltype
- 04 檢視推斷型別的方法
2. auto
- 05 使用auto替代顯式型別宣告
- 06 auto推斷出非預期型別時,使用explicitly typed initializer手法
3. 轉向現代C++
- 07 建立物件時注意區分()和{}
- 08 使用nullptr替代0和NULL
- 09 使用別名宣告替代typedef
- 10 使用限定作用域enum替代非限定作用域enum
- 11 使用=delete替代private未定義函式
- 12 將要重寫的函式宣告為override
- 13 使用const_iterator替代iterator
- 14 將不拋異常的函式宣告為noexcept
- 15 儘可能使用constexpr
- 16 保證const成員函式執行緒安全
- 17 理解特殊成員函式的生成機制
4. 智慧指標
- 18 對專屬所有權的資源管理使用std::unique_ptr
- 19 對共享所有權的資源管理使用std::shared_ptr
- 20 使用std::weak_ptr替代可能空懸的std::shared_ptr
- 21 使用std::make_unique和std::make_shared替代new
- 22 使用pimpl手法時,將特殊成員函式定義在實現檔案中
5. 右值引用、移動語義和完美轉發
- 23 理解std::move和std::forward
- 24 區分轉發引用和右值引用
- 25 對右值引用使用std::move,對轉發引用使用std::forward
- 26 避免過載轉發引用
- 27 過載轉發引用的替代方案
- 28 理解引用摺疊
- 29 移動操作缺乏優勢的情形:不存在、高成本、不可用
- 30 完美轉發的失敗情形
6. lambda表示式
- 31 避免預設捕獲模式
- 32 使用初始化捕獲將物件移入閉包
- 33 對auto&&型別形參使用decltype來std::forward
- 34 使用lambda替代std::bind
7. 併發API
- 35 使用std::async替代std::thread
- 36 需要非同步則指定std::launch::async
- 37 讓std::thread物件在所有路徑上不可合併(unjoinable)
- 38 注意多變的執行緒控制程式碼解構函式行為
- 39 對一次性事件通訊使用void future
- 40 對併發使用std::atomic,對特殊記憶體使用volatile
8. 其他輕微調整
- 41 對於可拷貝的形參,如果移動成本低且一定會被拷貝則考慮傳值
- 42 使用emplace操作替代insert操作
相關文章
- Effective Modern C++ 系列之 條款2: autoC++
- 學懂現代C++——《Effective Modern C++》之轉向現代C++C++
- 學懂現代C++——《Effective Modern C++》之型別推導和autoC++型別
- effective C++ : CHAPTER 8C++APT
- Effective C++筆記C++筆記
- effective C++筆記1C++筆記
- 《Effective C++》讀書筆記C++筆記
- Effective C++ 4.設計與宣告C++
- Effective C++ 筆記(3)資源管理C++筆記
- Effective C++ 條款08_不止於此C++
- 《Effective C++》閱讀總結(三):資源管理C++
- 《Effective C++》第三版-1. 讓自己習慣C++(Accustoming Yourself to C++)C++
- JSON for Modern C++ 庫的介紹與使用示例程式碼JSONC++
- 《Effective C++》第三版-5. 實現(Implementations)C++
- Modern Pascal is Still in the Race (Modern Pascal 仍在競賽中)
- 《Effective C++》閱讀總結(四): 設計、宣告與實現C++
- Effective c++條款11:在operator=中處理“自我賦值”C++賦值
- [讀書筆記][effective C++]條款30-inline的原理筆記C++inline
- 《Effective C++》第三版-3. 資源管理(Resource Management)C++
- Modern CMake 簡介
- 1.1 Cryptography and Modern Cryptography
- Modern PHP(一)特性PHP
- SQL Database for Modern DevelopersSQLDatabaseDeveloper
- 《Effective C++》第三版-4. 設計與宣告(Design and Declarations)C++
- Testing the Modern Mobile World - AngLi
- Modern PHP(二)標準PHP
- 《Effective C++》閱讀總結(二):類的構造、析構和賦值C++賦值
- Modern PHP(二)良好實踐PHP
- 好書推薦--Modern PHPPHP
- effective java 觀後感Java
- Effective Python學習筆記Python筆記
- 【Effective STL(3)】關聯容器
- Modern:數字連線2.0報告
- SharePoint Online 為Modern Page新增指令碼指令碼
- SharePoint Online 自定義Modern UI表單UI
- 《Effective C++》第三版-2. 構造析構賦值運算(Constructors,Destructors,and Assignment Operators)C++賦值Struct
- 現代 CSS 解決方案:Modern CSS ResetCSS
- <<Modern CMake>> 翻譯 2. CMake 基礎