Template allow the programmers to implement algorithms once for
various data types. Contrarily to macros, the compiler checks the
syntax. Functions, methods and classes can be templated. Template
parameters are of two kinds: data types or integers.