C++ Templates The Complete Guide

by ; ;
Edition: 2nd
Format: Hardcover
Pub. Date: 2017-09-08
Publisher(s): Addison-Wesley Professional
  • Complimentary 7-Day eTextbook Access - Read more
    When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
List Price: $85.59

Buy New

Special Order. We will make every effort to obtain this item but cannot guarantee stock or timing.
$81.51

Rent Book

Select for Price
There was a problem. Please try again later.

Rent Digital

Rent Digital Options
Online:1825 Days access
Downloadable:Lifetime Access
$92.39
$92.39

Used Book

We're Sorry
Sold Out

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

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, 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 companion website, tmplbook.com, contains sample code and additional updates.

Author Biography

C++ Programming

Table of Contents

Preface

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

 

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

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.