內容簡介
本書是同名經典暢銷圖書的全新升級版本,針對C++11、C++14、C++17標準進行了全面更新,並對所有的新語言特性(包括
可變參數模板、通用lambda、類模板參數推導等)進行了解釋。
全書共28章。首先全面介紹了本書的內容結構和相關情況。第1部分(第1~11章)介紹了模板的基本概念,第2部分(第12~17章)深入闡述了模板的細節,第3部分(第18~28章)介紹了C++模板所支持的基本設計技術。附錄A、附錄B、附錄C、附錄D和附錄E分別為一處定義原則、值類別、重載解析、標準類型實用程式和概念的相關資料。
本書適合對C++模板技術感興趣的有一定經驗的程式設計師閱讀。
圖書目錄
第 1部分: 基本概念
1 Function Templates 第 1章 函式模板
1.1 A First Look at Function Templates/初識函式模板
1.1.1 Defining the Template/定義模板
1.1.2 Using the Template/使用模板
1.1.3 Two-Phase Translation/二階段翻譯
1.2 Template Argument Deduction/
模板參數推導1.3 Multiple Template Parameters/多模板參數
1.3.1 Template Parameters for Return Types/返回類型的模板參數
1.3.2 Deducing the Return Type/推導返回類型
1.3.3 Return Type as CommonType/作為通用類型返回
1.4 Default Template Arguments/預設模板參數
1.5 Overloading Function Templates/重載函式模板
1.6 But,Shouldn’t We... /但是,難道我們不應該…?
1.6.1 Pass by Value or by Reference /按值傳遞還是按引用傳遞?
1.6.2 Why Not inline 為什麼不用inline呢?
1.6.3 Why Not constexpr 為什麼不用constexpr呢?
1.7 Summary/小結
2 Class Template 第 2章 類模板
2.1 Implementation of Class Template Stack/類模板Stack的實現
2.1.1 Declaration of Class Templates/類模板聲明
2.1.2 Implementation of Member Functions/成員函式的實現
2.2 Use of Class Template Stack/類模板Stack的使用
2.3 Partial Usage of Class Templates/類模板的局部使用
2.3.1 Concepts/概念
2.4 Friends/友元
2.5 Specializations of Class Templates/類模板特化
2.6 Partial Specialization/偏特化
2.7 Default Class Template Arguments/預設類模板參數
2.8 Type Aliases/類型別名
2.9 Class Template Argument Deduction/類模板參數推導
2.10 Templatized Aggregates/模板聚合
2.11 Summary/小結
3 Nontype Template Parameters 第3章 非類型模板參數
3.1 Nontype Class Template Parameters/非類型類模板參數
3.2 Nontype Function Template Parameters/非類型函式模板參數
3.3 Restrictions for Nontype Template Parameters/非類型模板參數的限制
3.4 Template Parameter Type auto/模板參數類型auto
3.5 Summary/小結
4 Variadic Templates第4章
可變參數模板4.1 Variadic Templates/可變參數模板
4.1.1 Variadic Templates by Example/可變參數模板實例
4.1.2 Overloading Variadic and Nonvariadic Templates/重載可變參數和非可變參數模板
4.1.3 Operator sizeof/運算符sizeof
4.2 Fold Expressions/摺疊表達式
4.3 Application of Variadic Templates /可變參數模板的套用
4.4 Variadic Class Templates and Variadic Expressions/可變參數類模板和可變參數表達式
4.4.1 Variadic Expressions/可變參數表達式
4.4.2 Variadic Indices/可變參數指數
4.4.3 Variadic Class Templates/可變參數類模板
4.4.4 Variadic Deduction Guides/可變參數推導指南
4.4.5 Variadic Base Classes and using/可變參數基類和using
4.5 Summary/小結
5 Tricky Basics 第5章 基礎技術
5.1 Keyword typename/關鍵字typename
5.2 Zero Initialization/零初始化
5.3 Using this->/ this->的使用
5.4 Templates for Raw Arrays and String Literals/原始數組和字元串字面量模板
5.5 Member Templates/成員模板
5.5.1 The .template Construct/構造.template
5.5.2 Generic Lambdas and Member Templates/泛型Lambda與成員模板
5.6 Variable Templates/變數模板
5.7 Template Template Parameters/模板的模板參數
5.8 Summary/小結
6 Move Semantics and enable_if<> 第6章 移動語義與enable_if<>
6.1 Perfect Forwarding/完美轉發
6.2 Special Member Function Templates/特殊的成員函式模板
6.3 Disable Templates with enable_if<>/使用enable_if <>禁用模板
6.4 Using enable_if<>/使用enable_if<>
6.5 Using Concepts to Simplify enable_if<> Expressions/ 使用概念簡化enable_if<>表達式
6.6 Summary/小結
7 By Value or by Reference 第7章 按值傳遞還是按引用傳遞?
7.1 Passing by Value/按值傳遞
7.2 Passing by Reference/按引用傳遞
7.2.1 Passing by Constant Reference/按常量引用調傳遞
7.2.2 Passing by Nonconstant Reference/按非常量引用傳遞
7.2.3 Passing by Forwarding Reference/按轉發傳遞
7.3 Using std::ref()andstd::cref()/std::ref() 和std::cref()的使用
7.4 Dealing with String Literals and Raw Arrays/ 處理字元串字面量常量與原始數組
7.4.1 Special Implementations for String Literals and Raw Arrays/ 字元串字面量常量和原始數組的特殊實現
7.5 Dealing with Return Values/處理返回值
7.6 Recommended Template Parameter Declarations/模板參數聲明推薦
7.7 Summary/小結
8 Compile-Time Programming 第8章 編譯時編程
8.1 Template Meta programming/模板元編程
8.2 Computing with constexpr/使用constexpr計算
8.3 Execution Path Selection with Partial Specialization/局部特化的執行路徑選擇
8.4 SFINAE(Substitution Failure Is Not An Error)/ SFINAE(替換失敗並不是一種錯誤)
8.4.1 Expression SFINAE with decltype/ 帶有decltype 的SFINAE表達式
8.5 Compile-Time if/編譯時if
8.6 Summary/小結
9 Using Templates in Practice 第9章 在實戰中使用模板
9.1 The Inclusion Model/包含模型
9.1.1 Linker Errors/連結器錯誤
9.1.2 Templates in Header Files/頭檔案中的模板
9.2 Templates and inline/模板和內聯
9.3 Precompiled Headers/預編譯頭檔案
9.4 Decoding the Error Novel/破譯大篇幅錯誤信息
9.5 Afternotes/本章後記
9.6 Summary/小結
10 Basic Template Terminology 第 10章 基本模板術語
10.1“Class Template” or “Template Class” / “類模板”還是“模板類”
10.2 Substitution , Instantiation , and Specialization/替換、實例化和特化
10.3 Declarations versus Definitions/聲明和定義
10.3.1 Complete versus Incomplete Types/完全和不完全類型
10.4 The One-Definition Rule/一處定義規則
10.5 Template Arguments versus Template Parameters/模板實數和模板形參
10.6 Summary/小結
11 Generic Libraries 第 11章 泛型庫
11.1 Callables/ Callable
11.1.1 Supporting Function Objects/支持函式對象
11.1.2 Dealing with Member Functions and Additional Arguments/處理成員函式和附加實參
11 .1.3 Wrapping Function Calls/包裝函式調用
11.2 Other Utilities to Implement Generic Libraries/實現泛型庫的其他實用程式
11.2.1 Type Traits/ Type Traits
11.2.2 std::addressof()/std::addressof()
11.2.3 std::declval()/std::declval()
11.3 Perfect Forwarding Temporaries/完美轉發臨時對象
11.4 References as Template Parameters/引用為模板參數
11.5 Defer Evaluations/延遲評估
11.6 Things to Consider When Writing Generic Libraries/編寫泛型庫時需要考慮的事情
11.7 Summary/小結
PartII: Templates in Depth 第二部分 深入模板
12 Fundamentals in Depth深入模板基礎
12.1 Parameterized Declarations/參數化宣告
12.1.1 Virtual Member Functions/虛成員函式
12.1.2 Linkage of Templates/模板連結
12.1.3 Primary Templates/主模板
12.2 Template Parameters/模板形參
12.2.1 Type Parameters/類型形參
12.2.2 Nontype Parameters/非類型形參
12.2.3 Template Template Parameters/模板的模板形參
12.2.4 Template Parameter Packs/模板參數包
12.2.5 Default Template Arguments/預設模板實參
12.3 Template Arguments/模板實參
12.3.1 Function Template Arguments/函式模板實參
12.3.2 Type Arguments/類型實參
12.3.3 Nontype Arguments/非類型實參
12.3.4 Template Template Arguments/模板的模板實參
12.3.5 Equivalence/實參的等價性
12.4 Variadic Templates/可變參數模板
12.4.1 Pack Expansions/包擴展
12.4.2 Where Can Pack Expansions Occur /在哪裡進行包擴展?
12.4.3 Function Parameter Packs/函式的參數包
12.4.4 Multiple and Nested Pack Expansions/多重和嵌套包擴展
12.4.5 Zero-Length Pack Expansions/零長度包擴展
12.4.6 Fold Expressions/摺疊表達式
12.5 Friends/友元
12.5.1 Friend Classes of Class Templates/類模板的友元類
12.5.2 Friend Functions of Class Templates /類模板的友元函式
12.5.3 Friend Templates/友元模板
12.6 Afternotes/本章後記
13 Names in Templates 第 13章 模板中的名稱
13.1 Name Taxonomy/名稱的分類
13.2 Looking Up Names/名稱的查找
13.2.1 Argument-Dependent Lookup/參數依賴查找 (ADL)
13.2.2 Argument-Dependent Lookup of Friend Declarations/友元聲明的ADL
13.2.3 Injected Class Names/注入式類名稱
13.2.4 Current Instantiations/當前實例化
13.3 Parsing Templates/解析模板
13.3.1 Context Sensitivity in Nontemplates/非模板的上下文敏感性
13.3.2 Dependent Names of Types/類型的依賴名稱
13.3.3 Dependent Names of Templates/模板的依賴名稱
13.3.4 Dependent Names in Using Declarations/使用聲明中的依賴名稱
13.3.5 ADL and Explicit Template Arguments/ADL和顯式模板實參
13.3.6 Dependent Expressions/依賴表達式
13.3.7 Compiler Errors/編譯器錯誤
13.4 Inheritance and Class Templates/繼承和類模板
13.4.1 Nondependent Base Classes/非依賴型基類
13.4.2 Dependent Base Classes/依賴型基類
13.5 Afternotes/本章後記
14 Instantiation 第 14章 實例化
14.1 On-Demand Instantiation/ 按需實例化
14.2 Lazy Instantiation/延遲實例化
14.2.1 Partial and Full Instantiation/部分和全部實例化
14.2.2 Instantiated Components/實例化組件
14.3 The C++ Instantiation Model/C++實例化模型
14.3.1 Two-Phase Lookup/二階段查找
14.3.2 Points of Instantiation/實例化點
14.3.3 The Inclusion Model/包含模型
14.4 Implementation Schemes/實現方案
14.4.1 Greedy Instantiation/貪婪實例化
14.4.2 Queried Instantiation/詢問實例化
14.4.3 Iterated Instantiation/疊代實例化
14.5 Explicit Instantiation/顯式實例化
14.5.1 Manual Instantiation/手動實例化
14.5.2 Explicit Instantiation Declarations/顯式實例化聲明
14.6 Compile-Time if Statements/ 編譯時if語句
14.7 In the Standard Library/標準庫
14.8 Afternotes/本章後記
15 Template Argument Deduction 第 15章 模板實參推導
15.1 The Deduction Process/推導過程
15.2 Deduced Contexts/推導上下文
15.3 Special Deduction Situations/特殊的推導情況
15.4 Initializer Lists/初始化列表
15.5 Parameter Packs/形參包
15.5.1 Literal Operator Templates/字面運算符模板
15.6 Rvalue References/右值引用
15.6.1 Reference Collapsing Rules/引用摺疊原則
15.6.2 Forwarding References/轉發引用
15.6.3 Perfect Forwarding/完美轉發
15.6.4 Deduction Surprises/推導的驚喜
15.7 SFINAE(Substitution Failure Is Not An Error )/ 替換失敗並不是錯誤
15.7.1 Immediate Context/即時上下文
15.8 Limitations of Deduction/推導的限制
15.8.1 Allowable Argument Conversions/可接受的實參轉換
15.8.2 Class Template Arguments/類模板實參
15.8.3 Default Call Arguments/預設調用實參
15.8.4 Exception Specifications/異常規範
15.9 Explicit Function Template Arguments/顯式函式模板實參
15.10 Deduction from Initializers and Expressions/從初始化和表達式中推導
15.10.1 The auto Type Specifier/ auto類型說明符
15.10.2 Expressing the Type of an Expression with decltype/用 decltype表示表達式的類型
15.10.3 decltype(auto)/ decltype(auto)
15.10.4 Special Situations for auto Deduction/ auto推導的特殊情況
15.10.5 Structured Bindings/結構化綁定
15.11 Alias Templates/別名模板
15.12 Class Template Argument Deduction/類模板實參推導
15.12.1 Deduction Guides/ 推導指南
15.12.2 Implicit Deduction Guides/隱式推導指南
15.12.3 Other Subtleties/其他細節
15.13 Afternotes/本章後記
16 Specialization and Overloading 特化和重載
16.1 When“Generic Code” Doesn’t Quite Cut It/當“泛型代碼”並不能很好地解決問題時
16.1.1 Transparent Customization/ 透明自定義
16.1.2 Semantic Transparency/語義透明度
16.2 Overloading Function Templates/重載函式模板
16.2.1 Signatures/簽名
16.2.2 Partial Ordering of Overloaded Function Templates/重載函式模板的偏序
16.2.3 Formal Ordering Rules/正式的排序規則
16.2.4 Templates and Nontemplates/模板和非模板
16.2.5 Variadic Function Templates/可變參數函式模板
16.3 Explicit Specialization/顯式特化
16.3.1 Full Class Template Specialization/全局類模板特化
16.3.2 Full Function Template Specialization/全局函式模板特化
16.3.3 Full Variable Template Specialization/全局可變模板特化
16.3.4 Full Member Specialization/全局成員特化..
16.4 Partial Class Template Specialization/局部類模板特化
16.5 Partial Variable Template Specialization/局部可變模板特化
16.6 Afternotes/本章後記
17 Future Directions 第 17章 未來發展方向
17.1 Relaxed typename Rules/寬鬆的typename原則
17.2 Generalized Nontype Template Parameters/廣義非類型模板參數
17.3 Partial Specialization of Function Templates/函式模板的局部特化
17.4 Named Template Arguments/命名模板實參
17.5 Overloaded Class Templates/重載類模板
17.6 Deduction for Nonfinal Pack Expansions/中間包擴展的推導
17.7 Regularization of void/void的規範化
17.8 Type Checking for Templates/模板的類型檢查
17.9 Reflective Meta programming/反射元編程
17.10 Pack Facilities/包管理工具
17.11 Modules/模組
PartIII: Templates and Design 第3部分 模板和設計
18 The Polymorphic Power of Templates 第 18章 模板的多態性
18.1 Dynamic Polymorphism/動態多態性
18.2 Static Polymorphism/靜態多態性
18.3 Dynamic versus Static Polymorphism/動態多態性與靜態多態性
18.4 Using Concepts/概念
18.5 New Forms of Design Patterns/設計模式的新形式
18.6 Generic Programming/泛型編程
18.7 Afternotes/本章後記
19 Implementing Traits 第 19章Trait的實現
19.1 An Example : Accumulating a Sequence/一個實例:累加一個序列
19.1.1 Fixed Traits/Fixed Trait
19.1.2 Value Traits/Value Trait
19.1.3 Parameterized Traits/參數化Trait
19.2 Traits versus Policies and Policy Classes/ Traits、Policy和Policy類
19.2.1 Traits and Policies : What’s the Difference / Traits和 Policy:區別在哪裡?
19.2.2MemberTemplatesversusTemplate Template Parameters/成員模板與模板的模板參數
19.2.3Combining Multiple Policies and/or Traits/組合多個policy和/或trait
19.2.4 Accumulation with General Iterators/用一般疊代器累積
19.3 Type Functions/類型函式
19.3.1 Element Types/元素類型
19.3.2 Transformation Traits/ Transformation Traits
19.3.3 Predicate Traits/ Predicate Traits
19.3.4 Result Type Traits/ Result Type Traits
19.4 SFINAE-Based Traits/ 基於SFINAE的Trait
19.4.1 SFINAE Out Function Overloads/ SFINAE功能過載
19.4.2 SFINAE Out Partial Specializations/ SFINAE局部特化
19.4.3 Using Generic Lambdas for SFINAE/為SFINAE使用泛型
Lambda表達式19.4.4 SFINAE-Friendly Traits/ SFINAE友好的特徵
19.5 IsConvertibleT/IsConvertibleT
19.6 Detecting Members/檢查成員
19.6.1 Detecting Member Types/檢查成員類型
19.6.2 Detecting Arbitrary Member Types/檢查任意成員類型
19.6.3 Detecting Nontype Members/檢查非類型成員
19.6.4 Using Generic Lambdas to Detect Members/使用泛型Lambda表達式檢查成員
19.7 Other Traits Techniques/其他Trait技術
19.7.1 If-Then-Else/ If-Then-Else
19.7.2 Detecting Nonthrowing Operations/檢查不拋出異常的操作
19.7.3 Traits Convenience/ Trait的便利性
19.8 Type Classification/類型分類
19.8.1 Determining Fundamental Types/確定基本類型
19.8.2 Determining Compound Types/確定複合類型
19.8.3 Identifying Function Types/識別函式類型
19.8.4 Determining Class Types/確定類類型
19.8.5 Determining Enumeration Types/確定枚舉類型
19.9 Policy Traits/ Policy Trait
19.9.1 Read-Only Parameter Types/ 唯讀參數類型
19.10 In the Standard Library/在標準庫中
19.11 Afternotes/本章後記
20 Overloading on Type Properties 第 20章 類型屬性上的重載
20.1 Algorithm Specialization/算法特化
20.2 Tag Dispatching/標籤調度
20.3 Enabling/Disabling Function Templates/啟用/禁用函式模板
20.3.1 Providing Multiple Specializations/提供多重特化
20.3.2 Where Does the EnableIf Go / EnableIf在哪裡運行?
20.3.3 Compile-Time if/編譯時if
20.3.4 Concepts/概念
20.4 Class Specialization/類的特化
20.4.1 Enabling/Disabling Class Templates/啟用/禁用類模板
20.4.2 Tag Dispatching for Class Templates/類模板標籤調度
20.5 Instantiation-Safe Templates/ 實例化安全的模板
20.6 In the Standard Library/在標準庫中
20.7 Afternotes/本章後記
21 Templates and Inheritance 第 21章 模板和繼承
21.1 The Empty Base Class Optimization(EBCO)/ 空白基類最最佳化
21.1.1 Layout Principles/布局原則
21.1.2 Members as Base Classes/成員作為基類
21.2 The Curiously Recurring Template Pattern(CRTP)/
奇異遞歸模板模式21.2.1 The Barton-Nackman Trick/ Barton-Nackman技巧
21.2.2 Operator Implementations/操作符實現
21.2.3 Facades/ 門面模式
21.3 Mixins/ Mixin
21.3.1 Curious Mixins/ 令人好奇的Mixin
21.3.2 Parameterized Virtuality參數化的虛擬性
21.4 Named Template Arguments/指定模板參數
21.5 Afternotes/本章後記
22 Bridging Static and Dynamic Polymorphism 第 22章 橋接靜態和動態多態性
22.1 Function Objects , Pointers , and std::function<>/函式對象、指針和std::function<>
22.2 Generalized Function Pointers/廣義函式指針
22.3 Bridge Interface/橋接口
22.4 Type Erasure/類型擦除
22.5 Optional Bridging/可選橋接
22.6 Performance Considerations/性能考慮
22.7 Afternotes/本章後記
23 Meta programming 第 23章 元編程
23.1 The State of Modern C++ Meta programming/現代C++元編程的狀態
23.1.1 Value Meta programming
23.1.2 Type Meta programming/類型元編
23.1.3 Hybrid Meta programming/混合元編程
23.1.4 Hybrid Meta programming for Unit Types/單元類型的混合元編程
23.2 The Dimensions of Reflective Meta programming/反射元編程的維數
23.3 The Cost of Recursive Instantiation/遞歸實例化的代價
23.3.1 Tracking All Instantiations/跟蹤所有實例
23.4 Computational Completeness/計算完整性
23.5 Recursive Instantiation versus Recursive Template Arguments/遞歸實例化與遞歸模板參數
23.6Enumeration Values versus Static Constants/枚舉值與靜態常量
23.7 Afternotes/本章後記
24 Typelists 第 24章Typelist
24.1 Anatomy of a Typelist/ Typelist解析
24.2 Typelist Algorithms/ Typelist算法
24.2.1 Indexing/索引
24.2.2 Finding the Best Match/尋找最佳匹配
24.2.3 Appending to a Typelist/添加Typelist
24.2.4 Reversing a Typelist/反轉Typelist
24.2.5 Transforming a Typelist/轉化Typelist
24.2.6 Accumulating Typelists/累加Typelist
24.2.7 Insertion Sort/插入排序
24.3 Nontype Typelists/非類型Typelists
24.3.1 Deducible Nontype Parameters/可推導的非類型參數
24.4 Optimizing Algorithms with Pack Expansions/使用包擴展最佳化算法
24.5 Cons-style Typelists/ Cons-style Typelist
24.6 Afternotes/本章後記
25 Tuples 第 25章 元組
25.1 Basic Tuple Design/基本的元組設計
25.1.1 Storage/存儲
25.1.2 Construction/結構
25.2 Basic Tuple Operations/基本的元組操作
25.2.1 Comparison/比較25.2.2 Output/輸出
25.3 Tuple Algorithms/元組算法
25.3.1 Tuples as Typelists/元組作為Typelist
25.3.2 Adding to and Removing from a Tuple/從元組中添加和移除
25.3.3 Reversing a Tuple/反轉一個元組
25.3.4 Index Lists/索引列表
25.3.5 Reversal with Index Lists/用索引列表進行反轉
25.3.6 Shuffle and Select/洗牌算法和選擇算法
25.4 Expanding Tuples/擴展元組
25.5 Optimizing Tuple/最佳化元組
25.5.1 Tuples and the EBCO/元組和EBCO
25.5.2 Constant-time get()/常數時間的get()
25.6 Tuple Subscript/元組下標
25.7 Afternotes/本章後記
26 Discriminated Unions 第 26章 可識別的聯合
26.1 Storage/存儲
26.2 Design/設計
26.3 Value Query and Extraction/值查詢與提取
26.4 Element Initialization, Assignment and Destruction/元素初始化、賦值和銷毀
26.4.1 Initialization/初始化
26.4.2 Destruction/銷毀
26.4.3 Assignment/賦值
26.5 Visitors/訪問
26.5.1 Visit Result Type/訪問結果類型
26.5.2 Common Result Type/常見結果類型
26.6 Variant Initialization an Assignment/變數初始化賦值
26.7 Afternotes/本章後記
27 Expression Templates 第 27章 表達式模板
27.1 Temporaries and Split Loops/臨時變數和分割循環
27.2 Encoding Expressions in Template Arguments/在模板參數中編碼表達式
27.2.1 Operands of the Expression Templates/表達式模板的運算元
27.2.2 The Array Type/ Array類型
27.2.3 The Operators/運算符
27.2.4 Review/回顧
27.2.5 Expression Templates Assignments/表達式模板賦值
27.3 Performance and Limitations of Expression Templates/表達式模板的性能與約束
27.4 Afternotes/本章後記
28 Debugging Templates 第 28章 調試模板
28.1 Shallow Instantiation/淺式實例化
28.2 Static Assertions/靜態斷言
28.3 Archetypes/原型
28.4 Tracers/跟蹤程式
28.5 Oracles/ Oracle
28.6 Afternotes/本章後記
Appendixes/附錄
A The One-Definition Rule 附錄A 一處定義原則
A.1 Translation Units/翻譯單元
A.2 Declarations and Definitions/聲明和定義
A.3 The One-Definition Rule in Detail/一處定義原則的細節
A.3.1 One-per-Program Constraints/程式的一處定義約束
A.3.2 One-per-Translation Unit Constraints/翻譯單元的一處定義約束
A.3.3 Cross-Translation Unit Equivalence Constraints/跨翻譯單元的等價性約束
B Value Categories 附錄B 值類別
B.1 Traditional Lvalues and Rvalues/傳統的左值和右值
B.1.1 Lvalue-to-Rvalue Conversions/左值和右值轉換
B.2 Value Categories Since C++11/ C++11的值類別
B.2.1 Temporary Materialization/臨時實體化
B.3 Checking Value Categories with decltype/使用decltype檢查值類別
B.4 Reference Types/引用類別
C Overload Resolution 附錄C 重載解析
C.1 When Does Overload Resolution Kick In / 何時套用重載解析
C.2 Simplified Overload Resolution/簡化的重載解析
C.2.1 The Implied Argument for Member Functions/成員函式的隱式參數
C.2.2 Refining the Perfect Match/對最佳匹配進行改進
C.3 Overloading Details/重載的細節
C.3.1 Prefer Nontemplates or More Specialized Templates/優先非模板還是更加專用的模板
C.3.2 Conversion Sequences/轉義序列
C.3.3 Pointer Conversions/指針轉換
C.3.4 Initializer Lists/初始化列表
C.3.5 Functors and Surrogate Functions/仿函式和代理函式
C.3.6 Other Overloading Contexts/其他重載情況
D Standard Type Utilities 附錄D 標準類型實用程式
D.1 Using Type Traits/使用Type Traits
D.1.1 std::integral_constant and std::bool_constant/ std::integral_constant和std::bool_constant
D.1.2 Things You Should Know When Using Traits/使用Trait時應該知道的事
D.2 Primary and Composite Type Categories/主要類型和複合類型
D.2.1 Testing for the Primary Type Category/測試主要類型的類別
D.2.2 Test for Composite Type Categories/測試複合類型的類別
D.3 Type Properties and Operations/類型屬性和操作
D.3.1 Other Type Properties/其他類型屬性
D.3.2 Test for Specific Operations/測試具體操作
D.3.3 Relationships Between Types/類型之間的關係
D.4 Type Construction/類型結構
D.5 Other Traits/其他Trait
D.6 Combining Type Traits/組合Type Trait
D.7 Other Utilities/其他應用程式
E Concepts 附錄E 概念
E.1 Using Concepts/使用概念
E.2 Defining Concepts/定義概念
E.3 Overloading on Constraints/重載約束
E.3.1 Constraint Subsumption/約束包含
E.3.2 Constraints and Tag Dispatching/約束和標籤調度
E.4 Concept Tips/概念提示
E.4.1 Testing Concepts/測試概念
E.4.2 Concept Granularity/概念粒度
E.4.3 Binary Compatibility/二進制兼容性
Bibliography 文獻
Forums/論壇
Books and WebSites/圖書和網站
Glossary 術語
Index 索引