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

--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
I don't see what purpose rejecting

  bool b = "";

serves when

  bool b = !!"";

or even

  bool b = "" ? 1 : 0;

are accepted.

Even if it isn't 100% crystal clear, the standard encourages implementations to
be permissive and treat additional expressions as constant, beyond the bare
minimum it strictly requires.  It may be of value to issue pedantic warnings
for code that relies on more than the required minimum, but summarily rejecting
it based on a minimalist reading is unfriendly, especially when more involved
(and less intuitive) equivalent alternatives are accepted.  All that achieves
is that it penalizes users who write clean code, forcing them to come up with
clunky workarounds.

Reply via email to