Diving deeper into C++ templates boost your knowledge of templates, the foundation of modern C++ programming - Templeman, Julian (O'Reilly, 2017)
"Templates form the foundation of modern C++ programming; they must be understood, not only to use the Standard Library, but to take advantage of many of the features found in C++11 and C++14. By offering a detailed look at how to create and use template functions and classes in your C++ code, this course goes beyond the basics, and is intended for the intermediate level programmer. Topics covered include: non-type and default parameters, overloading and specialization, the use of template parameters, explicit instantiation and inheritance, generic programming, type traits, and policy-based design. Learners completing this course will have the knowledge required to produce robust, practical, and modern C++ code."--Resource description page.