C++ S: The Guide S
c-s--guide-2nd
C-s-The--Guide
C%2B%2B%20s_%20The%20%20Guide%2C%20David%20Vandevoorde%2C%20Nicolai%20M.%20Josuttis%2C%20Douglas%20Gregor%2C%20(
User Manual:
Open the PDF directly: View PDF
Page Count: 2606 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- Title Page
- Copyright Page
- Dedication
- Contents
- Preface
- Acknowledgments for the Second Edition
- Acknowledgments for the First Edition
- About This Book
- Part I: The Basics
- 1 Function Templates
- 2 Class Templates
- 2.1 Implementation of Class Template Stack
- 2.2 Use of Class Template Stack
- 2.3 Partial Usage of Class Templates
- 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
- 4 Variadic Templates
- 5 Tricky Basics
- 6 Move Semantics and enable_if<>
- 7 By Value or by Reference?
- 8 Compile-Time Programming
- 9 Using Templates in Practice
- 10 Basic Template Terminology
- 11 Generic Libraries
- Part II: Templates in Depth
- 12 Fundamentals in Depth
- 13 Names in Templates
- 14 Instantiation
- 15 Template Argument Deduction
- 15.1 The Deduction Process
- 15.2 Deduced Contexts
- 15.3 Special Deduction Situations
- 15.4 Initializer Lists
- 15.5 Parameter Packs
- 15.6 Rvalue References
- 15.7 SFINAE (Substitution Failure Is Not An Error)
- 15.8 Limitations of Deduction
- 15.9 Explicit Function Template Arguments
- 15.10 Deduction from Initializers and Expressions
- 15.11 Alias Templates
- 15.12 Class Template Argument Deduction
- 15.13 Afternotes
- 16 Specialization and Overloading
- 17 Future Directions
- 17.1 Relaxed typename Rules
- 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
- 17.8 Type Checking for Templates
- 17.9 Reflective Metaprogramming
- 17.10 Pack Facilities
- 17.11 Modules
- Part III: Templates and Design
- 18 The Polymorphic Power of Templates
- 19 Implementing Traits
- 20 Overloading on Type Properties
- 21 Templates and Inheritance
- 22 Bridging Static and Dynamic Polymorphism
- 23 Metaprogramming
- 24 Typelists
- 25 Tuples
- 26 Discriminated Unions
- 27 Expression Templates
- 28 Debugging Templates
- Appendixes
- A The One-Definition Rule
- B Value Categories
- C Overload Resolution
- D Standard Type Utilities
- E Concepts
- Bibliography
- Glossary
- Index