From cppreference:
Call to a named function
<...> If the expression E is a primary expression, the name is looked up following normal rules for function calls (which may involve ADL). The function declarations found by this lookup are (due to the way lookup works) either: <...>
b) all member functions of some class T, in which case, if this is in scope and refers to T, *this is used as the implied object argument. Otherwise (if this is not in scope or does not point to T), a fake object of type T is used as the implied object argument, and if overload resolution subsequently selects a non-static member function, the program is ill-formed.
It seems that the second case is about func(arg)
calls inside methods. When could this
be not in the scope for such cases?
Or is it talking not only about func(arg)
-like stuff in methods?
When could
this
be not in the scope for such cases?
Static member functions.