Date
2020-12-15.00:00:00
Message id
6336

Content

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.