C++ Templates: The Complete Guide (2nd Edition)
Authors: David Vandevoorde – Nicolai M. Josuttis – Douglas Gregor
ISBN-10: 0321714121
ISBN-13: 9780321714121
Edition 版本: 2
Released: 2017-09-18
Pages: 832 pages
Book Description
Download
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
Contents
Preface
Acknowledgments for the Second Edition
Acknowledgments for the First Edition
About This Book
Partl: The Basics
1Function Templates
2 Class Templates
3 Nontype Template Parameters
4Variadic Templates
5 Tricky Basics
6 Move Semantics and enable_if<>
7By Value or by Reference?
8 Compile-Time Programming
9Using Templates in Practice
10 Basic Template Terminology
11 Generic Libraries
Part I: Templates in Depth
12 Fundamentals in Depth
13 Names in Templates
14Instantiation
15 Template Argument Deduction
16 Specialization and Overloading
17 Future Directions
Part ll: Templates and Design
18 The Polymorphic Power of Templates
19 lmplementing Traits
20 Overloading on Type Properties
21 Templates and Inheritance
22Bridging Static and Dynamic Polymorphism
23Metaprogramming
24 Typelists
25 Tuples
26 Discriminated Unions
27 Expression Templates
28 Debugging Templates
Appendixes
Bibliography
Glossary
Index