### Overloading Resolution for Template Functions

Resolution of overloaded template functions is done in the following order:

1. 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.
2. 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.
3. 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