•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.