is determined by enumerating the applicable
functions for an argument
), and choosing the best one through
overload resolution ([over.match]
If overload resolution is ambiguous,
the program is ill-formed.
If no viable functions are found, o
is a call to the selected function
with the argument a.
would be a prvalue,
the temporary materialization conversion ([conv.rval]
) is applied.