Overloading Resolution for Template Functions
Resolution of overloaded template functions is done in the
following order:
- Look for a function with an exact type match. This does
not include template functions, unless such functions
were explicitly declared using a function declaration.
Trivial conversions are performed if they produce an
exact type match.
- Look for a function template that allows generation of a
function with an exact type match. Trivial conversions
are performed if they produce an exact type match.
- Try ordinary overloading resolution for functions already
present. This does not include template functions&#
044; unless such functions were explicitly declared using
a function declaration.
A call to a template function causes an error, and no
overloading is done if the following conditions are true:
- The only available functions for a call are template
functions.
- These functions would require nontrivial conversions for
the call to succeed.
- These functions have not been explicitly declared.
Class Templates
Trivial Conversions
Overloading Resolution
Function Templates
Explicitly Defined Template Functions
Function Template Declarations and
Definitions
Differences between Class and Function
Templates
Example of Overloading a Template
Function