C和C++實務(wù)精選:C++ Templates中文版
定 價:89 元
- 作者:(美),David Vandevoorde ,(德),Nicolai M. Josuttis 著 陳偉柱 譯
- 出版時間:2013/4/1
- ISBN:9787115312815
- 出 版 社:人民郵電出版社
- 中圖法分類:TP312C
- 頁碼:497
- 紙張:膠版紙
- 版次:1
- 開本:16開
《C和C++實務(wù)精選:C++ Templates中文版》是C++模板編程的完全指南,旨在通過基本概念、常用技巧和應(yīng)用實例三方面的有用資料,為讀者打下C++模板知識的堅實基礎(chǔ)。
全書共22章。第1章全面介紹了《C和C++實務(wù)精選:C++ Templates中文版》的內(nèi)容結(jié)構(gòu)和相關(guān)情況。第1部分(第2~7章)以教程的風(fēng)格介紹了模板的基本概念,第2部分(第8~13章)闡述了模板的語言細(xì)節(jié),第3部分(第14~18章)介紹了C++模板所支持的基本設(shè)計技術(shù),第4部分(第19~22章)深入探討了各種使用模板的普通應(yīng)用程序。附錄A和附錄B分別為一處定義原則和重載解析的相關(guān)資料。
《C和C++實務(wù)精選:C++ Templates中文版》適合C++模板技術(shù)的初學(xué)者閱讀,也可供有一定編程經(jīng)驗的C++程序員參考。
第1章 關(guān)于本章
1.1 閱讀本書所需具備的知識
1.2 本書的整體結(jié)構(gòu)
1.3 如何閱讀本書
1.4 關(guān)于編程風(fēng)格的一些說明
1.5 標(biāo)準(zhǔn)和現(xiàn)實
1.6 代碼例子和更多信息
1.7 反饋
第1部分 基礎(chǔ)
第2章 函數(shù)模板
2.1 初探函數(shù)模板
2.1.1 定義模板
2.1.2 使用模板
2.2 實參的演繹(deduction)
2.3 模板參數(shù)
2.4 重載函數(shù)模板
2.5 小結(jié)
第3章 類模板
3.1 類模板Stack的實現(xiàn)
3.1.1 類模板的聲明
3.1.2 成員函數(shù)的實現(xiàn)
3.2 類模板Stack的使用
3.3 類模板的特化
3.4 局部特化
3.5 缺省模板實參
3.6 小結(jié)
第4章 非類型模板參數(shù)
4.1 非類型的類模板參數(shù)
4.2 非類型的函數(shù)模板參數(shù)
4.3 非類型模板參數(shù)的限制
4.4 小結(jié)
第5章 技巧性基礎(chǔ)知識
5.1 關(guān)鍵字typename
5.2 使用this->
5.3 成員模板
5.4 模板的模板參數(shù)
5.5 零初始化
5.6 使用字符串作為函數(shù)模板的實參
5.7 小結(jié)
第6章 模板實戰(zhàn)
6.1 包含模型
6.1.1 鏈接器錯誤
6.1.2 頭文件中的模板
6.2 顯式實例化
6.2.1 顯式實例化的例子
6.2.2 整合包含模型和顯式實例化
6.3 分離模型
6.3.1 關(guān)鍵字export
6.3.2 分離模型的限制
6.3.3 為分離模型做好準(zhǔn)備
6.4 模板和內(nèi)聯(lián)
6.5 預(yù)編譯頭文件
6.6 調(diào)試模板
6.6.1 理解長段的錯誤信息
6.6.2 淺式實例化
6.6.3 長符號串
6.6.4 跟蹤程序
6.6.5 oracles
6.6.6 archetypes
6.7 本章后記
6.8 小結(jié)
第7章 模板術(shù)語
7.1 "類模板"還是"模板類"
7.2 實例化和特化
7.3 聲明和定義
7.4 一處定義原則
7.5 模板實參和模板參數(shù)
第2部分 深入模板
第8章 深入模板基礎(chǔ)
8.1 參數(shù)化聲明
8.1.1 虛成員函數(shù)
8.1.2 模板的鏈接
8.1.3 基本模板
8.2 模板參數(shù)
8.2.1 類型參數(shù)
8.2.2 非類型參數(shù)
8.2.3 模板的模板參數(shù)
8.2.4 缺省模板實參
8.3 模板實參
8.3.1 函數(shù)模板實參
8.3.2 類型實參
8.3.3 非類型實參
8.3.4 模板的模板實參
8.3.5 實參的等價性
8.4 友元
8.4.1 友元函數(shù)
8.4.2 友元模板
8.5 本章后記
第9章 模板中的名稱
9.1 名稱的分類
9.2 名稱查找
9.2.1 Argument-Dependent Lookup(ADL)
9.2.2 友元名稱插入
9.2.3 插入式類名稱
9.3 解析模板
9.3.1 非模板中的上下文相關(guān)性
9.3.2 依賴型類型名稱
9.3.3 依賴型模板名稱
9.3.4 using-declaration中的依賴型名稱
9.3.5 ADL和顯式模板實參
9.4 派生和類模板
9.4.1 非依賴型基類
9.4.2 依賴型基類
9.5 本章后記
第10章 實例化
10.1 On-Demand實例化
10.2 延遲實例化
10.3 C++的實例化模型
10.3.1 兩階段查找
10.3.2 POI
10.3.3 包含模型與分離模型
10.3.4 跨翻譯單元查找
10.3.5 例子
10.4 幾種實現(xiàn)方案
10.4.1 貪婪實例化
10.4.2 詢問實例化
10.4.3 迭代實例化
10.5 顯式實例化
10.6 本章后記
第11章 模板實參演譯
11.1 演繹的過程
11.2 演繹的上下文
11.3 特殊的演繹情況
11.4 可接受的實參轉(zhuǎn)型
11.5 類模板參數(shù)
11.6 缺省調(diào)用實參
11.7 Barton-Nackman方法
11.8 本章后記
第12章 特化與重載
12.1 當(dāng)泛型代碼不再適用的時候
12.1.1 透明自定義
12.1.2 語義的透明性
12.2 重載函數(shù)模板
12.2.1 簽名
12.2.2 重載的函數(shù)模板的局部排序
12.2.3 正式的排序原則
12.2.4 模板和非模板
12.3 顯式特化
12.3.1 全局的類模板特化
12.3.2 全局的函數(shù)模板特化
12.3.3 全局成員特化
12.4 局部的類模板特化
12.5 本章后記
第13章 未來的方向
13.1 尖括號Hack
13.2 放松typename的原則
13.3 缺省函數(shù)模板實參
13.4 字符串文字和浮點型模板實參
13.5 放松模板的模板參數(shù)的匹配
13.6 typedef模板
13.7 函數(shù)模板的局部特化
13.8 typeof運算符
13.9 命名模板實參
13.10 靜態(tài)屬性
13.11 客戶端的實例化診斷信息
13.12 重載類模板
13.13 List參數(shù)
13.14 布局控制
13.15 初始化器的演繹
13.16 函數(shù)表達(dá)式
13.17 本章后記
第3部分 模板與設(shè)計
第14章 模板的多態(tài)威力
14.1 動多態(tài)
14.2 靜多態(tài)
14.3 動多態(tài)和靜多態(tài)
14.3.1 術(shù)語
14.3.2 優(yōu)點和缺點
14.3.3 組合這兩種多態(tài)
14.4 新形式的設(shè)計模板
14.5 泛型程序設(shè)計
14.6 本章后記
第15章 trait與policy類
15.1 一個實例:累加一個序列
15.1.1 fixed traits
15.1.2 value trait
15.1.3 參數(shù)化trait
15.1.4 policy和policy類
15.1.5 trait和policy:區(qū)別在何處
15.1.6 成員模板和模板的模板參數(shù)
15.1.7 組合多個policie和/或trait
15.1.8 運用普通的迭代器進行累積
15.2 類型函數(shù)
15.2.1 確定元素的類型
15.2.2 確定class類型
15.2.3 引用和限定符
15.2.4 promotion trait
15.3 policy trait
15.3.1 只讀的參數(shù)類型
15.3.2 拷貝、交換和移動
15.4 本章后記
第16章 模板與繼承
16.1 命名模板參數(shù)
16.2 空基類優(yōu)化
16.2.1 布局原則
16.2.2 成員作基類
16.3 奇特的遞歸模板模式
16.4 參數(shù)化虛擬性
16.5 本章后記
第17章 metaprogram
17.1 metaprogram的第一個實例
17.2 枚舉值和靜態(tài)常量
17.3 第2個例子:計算平方根
17.4 使用歸納變量
17.5 計算完整性
17.6 遞歸實例化和遞歸模板實參
17.7 使用metaprogram來展開循環(huán)
17.8 本章后記
第18章 表示式模板
18.1 臨時變量和分割循環(huán)
18.2 在模板實參中編碼表達(dá)式
18.2.1 表達(dá)式模板的操作數(shù)
18.2.2 Array類型
18.2.3 運算符
18.2.4 回顧
18.2.5 表達(dá)式模板賦值
18.3 表達(dá)式模板的性能與約束
18.4 本章后記
第4部分 高級應(yīng)用程序
第19章 類型區(qū)分
19.1 辨別基本類型
19.2 辨別組合類型
19.3 辨別函數(shù)類型
19.4 運用重載解析辨別枚舉類型
19.5 辨別class類型
19.6 辨別所有類型的函數(shù)模板
19.7 本章后記
第20章 智能指針
20.1 holder和trule
20.1.1 安全處理異常
20.1.2 holder
20.1.3 作為成員的holder
20.1.4 資源獲取于初始化
20.1.5 holder的局限
20.1.6 復(fù)制holder
20.1.7 跨函數(shù)調(diào)用來復(fù)制holder
20.1.8 trule
20.2 引用記數(shù)
20.2.1 計數(shù)器在什么地方
20.2.2 并發(fā)訪問計數(shù)器
20.2.3 析構(gòu)和釋放
20.2.4 CountingPtr模板
20.2.5 一個簡單的非侵入式計數(shù)器
20.2.6 一個簡單的侵入式計數(shù)器模板
20.2.7 常數(shù)性
20.2.8 隱式轉(zhuǎn)型
20.2.9 比較
20.3 本章后記
第21章 tuple
21.1 duo
21.2 可遞歸duo
21.2.1 域的個數(shù)
21.2.2 域的類型
21.2.3 域的值
21.3 tuple構(gòu)造
21.4 本章后記
第22章 函數(shù)對象和回調(diào)
22.1 直接調(diào)用、間接調(diào)用與內(nèi)聯(lián)調(diào)用
22.2 函數(shù)指針與函數(shù)引用
22.3 成員函數(shù)指針
22.4 class類型的仿函數(shù)
22.4.1 class類型仿函數(shù)的第1個實例
22.4.2 class類型仿函數(shù)的類型
22.5 指定仿函數(shù)
22.5.1 作為模板類型實參的仿函數(shù)
22.5.2 作為函數(shù)調(diào)用實參的仿函數(shù)
22.5.3 結(jié)合函數(shù)調(diào)用參數(shù)和模板類型參數(shù)
22.5.4 作為非類型模板實參的仿函數(shù)
22.5.5 函數(shù)指針的封裝
22.6 內(nèi)省
22.6.1 分析一個仿函數(shù)的類型
22.6.2 訪問參數(shù)的類型
22.6.3 封裝函數(shù)指針
22.7 函數(shù)對象組合
22.7.1 簡單的組合
22.7.2 混合類型的組合
22.7.3 減少參數(shù)的個數(shù)
22.8 值綁定
22.8.1 選擇綁定的目標(biāo)
22.8.2 綁定簽名
22.8.3 實參選擇
22.8.4 輔助函數(shù)
22.9 仿函數(shù)操作:一個完整的實現(xiàn)
22.10 本章后記
附錄A 一處定義原則
A.1 翻譯單元
A.2 聲明和定義
A.3 一處定義原則的細(xì)節(jié)
A.3.1 程序的一處定義約束
A.3.2 翻譯單元的一處定義約束
A.3.3 跨翻譯單元的等價性約束
附錄B 重載解析
B.1 何時應(yīng)用重載解析
B.2 簡化過的重載解析
B.2.1 成員函數(shù)的隱含實參
B.2.2 細(xì)化完美匹配
B.3 重載的細(xì)節(jié)
B.3.1 非模板優(yōu)先
B.3.2 轉(zhuǎn)型序列
B.3.3 指針的轉(zhuǎn)型
B.3.4 仿函數(shù)和代理函數(shù)
B.3.5 其他的重載情況
參考資料
術(shù)語表