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:



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