Introduction to C++ templates : mastering the foundations of modern C++ programming techniques - Templeman, Julian (O'Reilly, 2017)
"Templates are a fundamental feature of modern C++ programming. Designed for the beginner to intermediate level C++ programmer, this course explains why templates are important and how to use them. Expert programmer, Julian Templeman, starts with a description of the concept behind templates and shows you how they solve the problem of writing functions and classes that differ only in their parameter types. He then demonstrates how you use template functions to create functions that will work with a variety of parameter types and how to use them in code. Then, he shows you how to create and use template classes, parameterized types that are commonly used for containers such as vector and list. The course finishes off with a discussion of how the compiler processes templates and what this means in terms of how code is compiled and linked."--Resource description page.