現代C++安全 Embracing Modern C++ Safely

John Lakos,Vittorio Romeo,Rostislav Khlebnikov,Alisdair Meredith 譯 劉曉光//李忠偉//任明明

相關主題

商品描述

本書作者基於多年從事大型軟體專案開發的經驗,以模組化形式精心組織,
闡述如何有效利用現代C++的新功能和強大的語言功能,同時避開其中的潛在陷阱。
本書也總結了C++社群在近十年來應用C++11和 C++14新功能的經驗,透過使用來自真實程式碼庫的範例來說明每個新功能和關鍵問題,
並且給出了每個新功能的用例和潛在缺陷,可幫助讀者在多樣化的大型軟體開發環境中做出高效且安全的設計決策。
本書對於C++開發人員、團隊領導者和技術經理具有很高的參考價值。

讀完本書後,讀者將會
·理解 C++11/14 每個特性的用途及其最有效的使用方法。
·了解如何解決令人困擾的陷阱和煩人的邊界範例(特殊情況時出現)。
·了解哪些特性需要額外的訓練、經驗和同儕審查。
·獲得有關編碼標準和風格指南的知識,以滿足組織需求。
·逐步將現代C++的能力適當地引入目前已建立的程式碼庫。

目錄大綱

目錄
譯者序
序一
序二
第1章 引言
1.1 本書特點
1.2 本書範圍
1.3 本書指導原則
1.4 安全性
1.5 安全特性
1.6 有條件的安全特性
1.7 不安全特性
1.8 本書結構
1.9 本書使用方式
第2章 安全特性
2.1 C++11
2.1.1 屬性語法:廣義屬性支持
2.1.2 連續的>:連續的右尖括號
2.1.3 decltype:提取表達式類型的運算符
2.1.4 預設函數:為特殊成員函數使用=default
2.1.5 委派構造:建構子呼叫其他建構函數
2.1.6 deleted函數:對任意函數使用=delete
2.1.7 explicit:明確轉換運算符
2.1.8 函數作用域靜態'11:執行緒安全的函數作用域靜態變數
2.1.9 局部型別'11:作為模板參數的局部/未命名型別
2.1.10 long long:至少64位元的整數型
2.1.11 noreturn:[[noreturn]]屬性
2.1.12 nullptr:空指標字面值關鍵字
2.1.13 override:成員函數限定符
2.1.14 原始字串字面值:內容語法
2.1.15 static_assert:編譯時斷言
2.1.16 尾置返回:尾置函數傳回類型
2.1.17 Unicode:字串字面值
2.1.18 using關鍵字:型別/範本別名
2.2 C++14
2.2.1 聚合初始化'14:具有預設成員初始化器的聚合
2.2.2 二進位字面值:0b前綴
2.2.3 deprecated:[[deprecated]]屬性
2.2.4 數字分隔符號:'
2.2.5 變數模板:模板化的變數宣告/定義
第3章 有條件的安全特性
3.1 C++11
3.1.1 alignas說明符
3.1.2 alignof操作符
3.1.3 auto變數:自動推導類型的變數
3.1.4 大括號初始化:{}
3.1.5 constexpr函數:編譯時可呼叫的函數
3.1.6 constexpr變數:編譯時可存取的變數
3.1.7 預設成員初始化:預設類別/聯合成員初始化程序
3.1.8 枚舉類別:強型別、限定作用域的枚舉
3.1.9 外部模板:明確實例化聲明
3.1.10 轉發引用:T&&
3.1.11 廣義POD'11:平凡與標準佈局類型
3.1.12 繼承建構子:繼承基底類別建構函數
3.1.13 列表初始化:std::initializer_list<T>
3.1.14 lambda表達式:匿名函數物件/閉包
3.1.15 noexcept運算子:詢問一個表達式能否不拋出例外
3.1.16 不透明的enum:不透明的列舉聲明
3.1.17 基於範圍的循環:for循環
3.1.18 右值引用:移動語意與
3.1.19 底層型別'11:顯式枚舉的底層型
3.1.20 自訂字面值:使用者定義的字面值運算符
3.1.21 可變模板:可變參數模板
3.2 C++14
3.2.1 constexpr函數'14:減少constexpr函數的使用限制
3.2.2 泛型lambda表達式:具備模板化呼叫運算子的lambda表達式
3.2.3 lambda捕獲:lambda捕獲表達式
第4章 不安全特性
4.1 C++11
4.1.1 carries_dependency:[[carries_dependency]]屬性
4.1.2 final:禁止重寫和派生
4.1.3 友元'11:對友元聲明的拓展
4.1.4 內嵌命名空間:透明的巢狀命名空間
4.1.5 noexcept說明符:noexcept函式規範
4.1.6 引用限定符:引用限定的成員函數
4.1.7 union'11:具有非平凡成員的聯合體
4.2 C++14
4.2.1 auto返回:函數傳回類型推導
4.2.2 decltype(auto):使用decltype語意推導類型
參考文獻