The use of templates was introduced late in the language standard, mainly to improve the definition of type-independent data structures. The strict type control in C++ requires the programmer to declare variables, parameters and return values of functions with specific types. However, there are many algorithms that are implemented identically or very ¨ similarly despite having different basic data types. and this is where templates come in. This form of type-independent algorithm description is called “generic programming“.
Simply put, C++ provides template as a tool to describe an algorithm in general terms without committing to a data type.
Advantages of using templates
A template only needs to be coded once. Individual classes or functions are generated automatically.
Uniform solution for similar problems, so that independent components can be tested at an early stage.