About templates
A Templates is blue print of class and it is a feature of C++ programming which permits function and class operations with generic types and Templates allows functionality with different data types without rewriting entire code blocks for each type. Templates are a valuable utility in Oops programming when used with operator overloading and multiple inheritance. Templates reduce the effort associated with coding different data types to a single set of code and reduce debugging efforts. Templates codes are overridden by providing special definitions for specific types which is known as Templates specialization. A special version of a function for a given set of Templates arguments is known as explicit specialization.
Related resources for templates