C++ Templates: The Complete Guide, 2nd edition

Published by Addison-Wesley Professional (September 14, 2017) © 2018

  • David Vandevoorde
  • Nicolai M. Josuttis
  • Douglas Gregor
Products list
Templates are among the most powerful features of C++, but they remain misunderstood and under-utilised, even as the C++ language and development community have advanced. In C++ Templates, 2nd Edition, three pioneering C++ experts show why, when, and how to use modern templates to build software that’s cleaner, faster, more efficient, and easier to maintain.
Now extensively updated for the C++11, C++14, and C++17 standards, this new edition presents state-of-the-art techniques for a wider spectrum of applications. The authors provide authoritative explanations of all new language features that either improve templates or interact with them, including variadic templates, generic lambdas, class template argument deduction, compile-time if, forwarding references, and user-defined literals. They also deeply delve into fundamental language concepts (like value categories) and fully cover all standard type traits.
The book starts with an insightful tutorial on basic concepts and relevant language features. The remainder of the book serves as a comprehensive reference, focusing first on language details and then on coding techniques, advanced applications, and sophisticated idioms. Throughout, examples clearly illustrate abstract concepts and demonstrate best practices for exploiting all that C++ templates can do.
  • Understand exactly how templates behave, and avoid common pitfalls
  • Use templates to write more efficient, flexible, and maintainable software
  • Master today’s most effective idioms and techniques
  • Reuse source code without compromising performance or safety
  • Benefit from utilities for generic programming in the C++ Standard Library
  • Preview the upcoming concepts feature

The full text downloaded to your computer

With eBooks you can:

  • search for key concepts, words and phrases
  • make highlights and notes as you study
  • share your notes with friends

eBooks are downloaded to your computer and accessible either offline through the Bookshelf (available as a free download), available online and also via the iPad and Android apps.

Upon purchase, you'll gain instant access to this eBook.

Time limit

The eBooks products do not have an expiry date. You will continue to access your digital ebook products whilst you have your Bookshelf installed.

  • 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
     
     

Need help? Get in touch