Consider this example:
struct A {
static void f(A);
void f(this A);
void g();
};
void A::g() {
(&A::f)(A()); // #1
(&A::f)(); // #2
}
What should happen for #1? One possible answer is that the /member-specification/ of A is ill-formed because of conflicting declarations for f. That would also allow mangling the explicit-object member function A::f the same as the static member function.
See CWG2692
Consider this example:
What should happen for #1? One possible answer is that the /member-specification/ of
Ais ill-formed because of conflicting declarations forf. That would also allow mangling the explicit-object member functionA::fthe same as the static member function.See CWG2692