Function Templates
A specialized template function is a function that we
implement with the same signature as a template function
instantiation.
The specialization must be defined after the definition of
the function template, but before the first use of the
specialization.
The definition of the specialized template function must
be preceded by the template keyword and followed by an
empty set of angle brackets (<>) (i.e., template<>).
The specialization will then be used instead of a version
that the compiler could instantiate.