Ru-Brd |
When we call a function template such as max() for some arguments, the template parameters are determined by the arguments we pass. If we pass two int s to the parameter types T const& , the C++ compiler must conclude that T must be int . Note that no automatic type conversion is allowed here. Each T must match exactly. For example: template <typename T> inline T const& max (T const& a, T const& b); max(4,7) // OK: T is int for both arguments max(4,4.2) // ERROR: first T is int , second T is double There are three ways to handle such an error:
For a detailed discussion of these topics, see the next section. |
Ru-Brd |