CS202   7- ‹#›
Function Templates
•The most specialized functions are those who's arguments can be applied to a generalized function template or some other specialization.
•When calling a function, the most specialized function is used, if one is available that matches the actual argument list.
•This means that specialization takes precedence followed by generalized function templates.
•If a regular C++ function with the same name and signature as a specialized template function is declared before the definition of the function template, that declaration is hidden by the template or any specialized template function that follows.