Function Templates
We begin with the keyword template followed by the
template's formal argument list inside of angle brackets (<
>).
This is followed by the function's header (i.e., the
function's return type, name, and argument list).
The signature of a function template is the function's
signature, its return type, along with the template's formal
argument list.