The first part of this book provided a tutorial for most of the language concepts underlying C++ templates. That presentation is sufficient to answer most questions that may arise in everyday C++ programming. The second part of this book provides a reference that answers even the more unusual questions that arise when pushing the envelope of the language to achieve some advanced software effects. If desired, you can skip this part on a first read and return to specific topics as prompted by references in later chapters or after looking up a concept in the index.
Our goal is to be clear and complete but also to keep the discussion concise. To this end, our examples are short and often somewhat artificial. This also ensures that we don’t stray from the topic at hand to unrelated issues.
In addition, we look at possible future changes and extensions for the templates language feature in C++.
The topics of this part include:
• Fundamental template declaration issues
• The meaning of names in templates
• The C++ template instantiation mechanisms
• The template argument deduction rules
• Specialization and overloading