-
Part I: The Basics
-
Chapter 1: Function Templates
-
Chapter 2: Class Templates
-
Chapter 3: Nontype Template Parameters
-
Chapter 4: Variadic Templates
-
Chapter 5: Tricky Basics
-
Chapter 6: Move Semantics and enable_if<>
-
Chapter 7: By-Value or By-Reference?
-
Chapter 8: Compile-Time Programming
-
Chapter 9: Using Templates in Practice
-
Chapter 10: Basic Template Terminology
-
Chapter 11: Generic Libraries
-
Part II: Templates in Depth
-
Chapter 12: Fundamentals in Depth
-
Chapter 13: Names in Templates
-
Chapter 14: Instantiation
-
Chapter 15: Template Argument Deduction
-
Chapter 16: Specialization and Overloading
-
Chapter 17: Future Directions
-
Part III: Templates and Design
-
Chapter 18: The Polymorphic Power of Templates
-
Chapter 19: Implementing Traits
-
Chapter 20: Overloading on Type Properties
-
Chapter 21: Templates and Inheritance
-
Chapter 22: Bridging and Static and Dynamic Polymorphism
-
Chapter 23: Metaprograms
-
Chapter 24: Typelists
-
Chapter 25: Tuples
-
Chapter 26: Discriminated Unions
-
Chapter 27: Expression Templates
-
Chapter 28: Debugging Templates
-
Appendixes
-
Appendix A: The One-Definition Rule
-
Appendix B: Value Categories
-
Appendix C: Overload Resolution
-
Appendix D: Standard Type and Meta Utilities
-
Appendix E: Concepts
-
Bibliography
-
Glossary
-
Index