C++ Templates - The Complete Guide, 2nd Ed.

Available now:


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

by David Vandevoorde, Nicolai M. Josuttis, and Douglas Gregor

  • Giving guidance on how to use Templates in Modern C++
  • For programmers, who just use templates, who provide class and function templates, and who provide generic and foundation libraries
  • Covering C++11, C++14, and C++17
  • Explaining all type traits of the C++ Standard Library in depth
  • On 822 pages in 33 Chapters (12 Chapters are brand new)

Note: There is another book coming pretty soon: C++17 - The Complete Guide

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.

Topics (see the Table of Contents for details):

David Vandevoorde, vice president of engineering at the Edison Design Group, Inc (EDG), architects key features of the company's C++ compiler. A co-founder of the renowned comp.lang.c++.moderated forum, he is also active in C++ standardization. He holds a PhD and MSc in computer science from Rensselaer Polytechnic Institute, and an MEng from Brussels Free University. His technical interests include algorithm development and teaching.

Nicolai M. Josuttis is an independent systems architect, technical manager, consultant and trainer being active in C++ standardization for 20 years. Sitting in the Library Working Group he especially cares for the view of the ordinary application programmer. He is well known in the C++ Community for speaking and writing with authority, being the author of The C++ Standard Library - A Tutorial and Reference, 2nd Edition, (Addison-Wesley, 2012) and several other books on object-oriented programming, C++, and Serive-Oriented Architecture (SOA).

Douglas Gregor is a senior compiler developer with a background in C++ library design. As an early contributor to Boost, he developed several libraries that became part of the C++ standard. Later, he led the implementation of the open-source Clang C++ compiler as its code owner through the completion of C++11 support, and was active in the standardization of C++11. He holds a PhD in computer science from Rensselaer Polytechnic Institute.

 David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor
 C++ Templates - The Complete Guide, 2nd Edition
 Addison-Wesley, 2017
 ISBN-13:   978- 0-321-71412-1
 ISBN-10: 0-321-71412-1

Copyright 2017 by Nicolai M. Josuttis