Home > Store

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

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

eBook (Watermarked)

  • Your Price: $51.19
  • List Price: $63.99
  • Estimated Release: Sep 15, 2017
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Also available in other formats.

Register your product to gain access to bonus material or receive a coupon.


  • Copyright 2018
  • Dimensions: 7-3/8" x 9-1/4"
  • Pages: 816
  • Edition: 2nd
  • eBook (Watermarked)
  • ISBN-10: 0-13-477879-0
  • ISBN-13: 978-0-13-477879-2

The Definitive Reference to C++ Templates—Fully Updated for the Latest C++ Standards

Templates are among the most powerful features of C++, but they remain misunderstood and underutilized, even as the C++ language and development community have advanced. In C++ Templates, Second 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, inline namespaces, 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 emerging concepts (template interfaces) feature

The companion website, tmplbook.com, contains sample code and additional updates.

Sample Content

Table of Contents


Acknowledgments for the Second Edition

Acknowledgments for the First Edition

About This Book

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


Appendix A: The One-Definition Rule

Appendix B: Value Categories

Appendix C: Overload Resolution

Appendix D: Standard Type and Meta Utilities

Appendix E: Concepts





Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership