For non-static member functions, the type of the implicit object
parameter is
where
X
is the class of which the function is a member and
cv
is the cv-qualification on the
member function declaration
. [
Example 1:
For a
const
member
function of class
X,
the extra parameter is assumed to have type
“reference to
const X”
. —
end example]
For conversion functions, the function is considered to be a member of the
class of the implied object argument for the purpose of defining the
type of the implicit object parameter
. For non-conversion functions
introduced by a
using-declaration
into a derived class, the function is
considered to be a member of the derived class for the purpose of defining
the type of the implicit object parameter
. For static member functions, the implicit object parameter is considered
to match any object (since if the function is selected, the object is
discarded)
. [
Note 1:
No actual type is established for the implicit object parameter
of a static member function, and no attempt will be made to determine a
conversion sequence for that parameter (
[over.match.best])
. —
end note]