Effective Modern C++:中文版

Effective Modern C++:中文版

《Effective Modern C++:中文版》是2018年中國電力出版社出版的圖書。

基本介紹

  • 中文名:Effective Modern C++:中文版
  • 作者:Scott Meyers
  • 出版時間:2018年5月
  • 出版社:中國電力出版社
  • ISBN:9787519817749
內容簡介,圖書目錄,作者簡介,

內容簡介

想要徹底理解C 11和C 14,不可止步於熟悉它們引入的語言特性(例如,auto型別推導、移動語義、lambda表達式,以及並發支持)。挑戰在於高效地運用這些特性,從而使你的軟體具備正確性、高效率、可維護性和可移植性。這正是本書意欲達成的定位。它描述的正是使用C 11和C 14(即現代C )來編寫真正卓越的軟體之道。涵蓋以下主題:大括弧初始化、noexcept規格、完美轉發,以及智慧型指針的make函式的優缺點。std::move、std::forward、右值引用和*引用之間的聯繫。編寫整潔、正確,以及高效的lambda表達式的方法。std::atomic和volatile有怎樣的區別,它們分別用於什麼場合,以及它們和C 的並發API有何聯繫。“舊”C 程式設計(即C 98)中的實戰要求在現代C 的軟體開發中作出哪些修訂。

圖書目錄

出版商聲明 1
致謝 3
緒論 7
第1章 型別推導 15
條款1:理解模板型別推導 15
條款2:理解auto型別推導 23
條款3:理解decltype 28
條款4:掌握查看型別推導結果的方法 35
第2章 auto 41
條款5:優先選用auto,而非顯式型別聲明 41
條款6:當auto推導的型別不符合要求時,使用帶顯式型別的初始化物習慣用法 46
第3章 轉向現代C++ 52
條款7:在創建對象時注意區分( )和{ } 52
條款8:優先選用nullptr,而非0或NULL 61
條款9:優先選用別名聲明,而非typedef 64
條款10:優先選用限定作用域的枚舉型別,而非不限作用域的枚舉型別 68
條款11:優先選用刪除函式,而非private未定義函式 74
條款12:為意在改寫的函式添加override聲明 79
條款13:優先選用const_iterator,而非iterator 85
條款14:只要函式不會發射異常,就為其加上noexcept聲明 89
條款15:只要有可能使用constexpr,就使用它 95
條款16:保證const成員函式的執行緒安全性 101
條款17:理解特種成員函式的生成機制 106
第4章 智慧型指針 113
條款18:使用std::unique_ptr管理具備專屬所有權的資源 115
條款19:使用std::shared_ptr管理具備共享所有權的資源 120
條款20:對於類似std::shared_ptr但有可能空懸的指針使用std::weak_ptr 129
條款21:優先選用std::make_unique和std::make_shared,而非直接使用new 133
條款22:使用Pimpl習慣用法時,將特殊成員函式的定義放到實現檔案中 141
第5章 右值引用、移動語義和完美轉發 150
條款23:理解std::move和std::forward 151
條款24:區分萬能引用和右值引用 156
條款25:針對右值引用實施std::move,針對萬能引用實施std::forward 161
條款26:避免依萬能引用型別進行重載 169
條款27:熟悉依萬能引用型別進行重載的替代方案 175
條款28:理解引用摺疊 187
條款29:假定移動操作不存在、成本高、未使用 193
條款30:熟悉完美轉發的失敗情形 196
第6章 lambda表達式 204
條款31:避免默認捕獲模式 205
條款32:使用初始化捕獲將對象移入閉包 212
條款33:對auto&&型別的形參使用decltype,以std::forward之 217
條款34:優先選用lambda式,而非std::bind 220
第7章 並發API 228
條款35:優先選用基於任務而非基於執行緒的程式設計 228
條款36:如果異步是必要的,則指定std::launch::async 232
條款37:使std::thread型別對象在所有路徑皆不可聯結 236
條款38:對變化多端的執行緒句柄析構函式行為保持關注 243
條款39:考慮針對一次性事件通信使用以void為模板型別實參的期值 247
條款40:對並發使用std::atomic,對特種記憶體使用volatile 254
第8章 微調 263
條款41:針對可複製的形參,在移動成本低並且一定會被複製的前提下,考慮將
其按值傳遞 263
條款42:考慮置入而非插入 273

作者簡介

20多年來,Scott Meyers的Effective C 叢書(包括《Effective C 》、《More Effecitve C 》和《Effective STL》)已經為C 程式設計指南的業界設立標桿。他清晰明了引人入勝的、對複雜技術材料進行條分縷析的闡釋為他贏得了世界範圍內的稱譽,也使他成為一名廣受歡迎的培訓師、諮詢顧問和會議講師。他擁有布朗大學計算機科學專業的博士學位。

熱門詞條

聯絡我們