struct B {}; struct D : public B { static const int i = sizeof((B*)(D*)0); };struct Z {}; struct A : Z {}; Z* implicitToZ (Z*); struct B : A { static const int i = sizeof(implicitToZ((B*)0)); }; struct B {}; struct D; D* p; struct D: public B { static const int i = sizeof ((B*)p); }; (see PR27177). All of these would still be forbidden within (0?x:y).OK, but should they perhaps give an error which would perhaps not be given if skip_evaluation is true?
build_cp_class does not give errors after it tests skip_evaluation. The constant-expression errors are given in the parsers.
Paolo
