https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106212
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- a.C:39:21: error: non-constant condition for static assertion 39 | static_assert(p - q != 0); | ~~~~~~^~~~ a.C:39:24: in 'constexpr' expansion of 'operator-(p, q).P::operator==(P(0))' a.C:34:8: in 'constexpr' expansion of 'std::operator==<int, 1>(((const P*)this)->P::e, <anonymous>.P::e)' a.C:19:20: error: '(((const int*)(&<anonymous>.P::e.std::array<int, 1>::_M_elems)) == 0)' is not a constant expression 19 | { return __ptr == 0; } | ~~~~~~^~~~