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 ints 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:
There are three ways to handle such an error:
-
Cast the arguments so that they both match:
-
Specify (or qualify) explicitly the type of T:
-
Specify that the parameters may have different types.
For a detailed discussion of these topics, see the next
section.
No comments:
Post a Comment