This course includes all the information that you should know about templates as a professional C++ developer. I know, sometimes the details are quite sophisticated and, therefore, the course was not so easy to follow. This holds, particularly true for the design with templates. But the reward is outstanding.
Templates are one of the outstanding features of C++. They become more and more important with each new C++ standard. The reason is quite simple; templates provide abstraction without an abstraction performance penalty.
With C++20, we get concepts which will lift templates to the next level. With concepts, template parameters support semantic categories such as
Integral, provide easy to read error messages and can be implemented as easily as functions.
You see, the future of C++ speaks templates.