C templates : the complete guide Templates are among the most powerful features of C++ but they are too often neglected misunderstood and misused. C++ Templates: The Complete Guide provides software architects and engineers with a clear understanding of why when and how to use templates to build and maintain cleaner faster and smarter software more efficiently. C++ Templates begins with an insightful tutorial on basic concepts and language features. The remainder of the book serves as a comprehensive reference focusing first on language details then on a wide range of coding techniques and finally on advanced applications for templates. Examples used throughout the book illustrate abstract concepts and demonstrate best practices. Readers learn: The exact behaviors of templates How to avoid the pitfalls associated with templates Idioms and techniques from the basic to the previously undocumented How to reuse source code without threatening performance or safety How to increase the efficiency of C++ programs How to produce more flexible and maintainable software This practical guide shows programmers how to exploit the full power of the template features in C++. Provided by publisher Part I. The Basics: Function Templates ; Class Templates ; Nontype Template Parameters ; Variadic Templates ; Tricky Basics ; Move Semantics and enable_if<> ; By Value or by Reference ; Compile Time Programming ; Using Templates in Practice ;Basic Template Terminology ; Generic Libraries Part II. Templates in Depth: Fundamentals in Depth ; Names in Templates ; Instantiation ; Template Argument Deduction ; Specialization and Overloading ; Future Directions Part III. Templates and Design: The Polymorphic Power of Templates ; Implementing Traits ; Overloading on Type Properties ; Templates and Inheritance ; Bridging Static and Dynamic Polymorphism ; Metaprogramming ; Typelists ; Tuples ; Discriminated Unions ; Expression Templates ; Debugging Templates Appendixes: A. The One Definition Rule ; B. Value Categories ; C. Overload Resolution ; D. Standard Type Utilities ; E. Concepts