Additional note, March, 2019:
The resolution emoves the rule that a class member name can be found by unqualified lookup prior to its point of definition in complete-class contexts, at least in non-defining member declarations:
struct X {
void f(int n = k); // was valid, now ill-formed
static int k;
};
Relatedly, the "member definitions" rule (formerly p4, now p2) that was used to justify the removal of p1 is wrong (both before and after that change):
struct A {
void f(B b) {} // was always (incorrectly) valid
struct B {};
};
For these reasons, this issue has been returned to "drafting" status.