The function declarations found by name lookup (
[basic.lookup]) constitute the
set of candidate functions
. Because of the rules for name lookup, the set of candidate functions
consists (1) entirely of non-member functions or (2) entirely of
member functions of some class
T. In case (2), the argument list is the
expression-list
in the call augmented by the addition of an implied object
argument as in a qualified function call
. If the current class is, or is derived from,
T, and the keyword
this (
[expr.prim.this]) refers to it,
then the implied object argument is
(*this). Otherwise,
a contrived object of type
T
becomes the implied object argument;
if overload resolution selects a non-static member function,
the call is ill-formed
.