https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105050

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
N.B. GCC 9 showed this instead of the "<statement>" part:

x.ii:15:7: error: expression
'(((expected<int>*)this)->expected<int>::has_value() ? ((&
__x)->expected<int>::has_value() ? ({...}) : ({...})) : ((&
__x)->expected<int>::has_value() ? ({...}) : ({...})))' is not a constant
expression
   15 |       if (this->has_value())
      |       ^~

That doesn't tell you the problem either, and is unreadable (and misleading
because there's no conditional expression in the original code). So shortening
that to just "<statement>" was definitely an improvement. I think your note
would make it even better.

Reply via email to