http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56039
--- Comment #3 from Daniel Krügler <daniel.kruegler at googlemail dot com>
2013-01-19 17:20:21 UTC ---
(In reply to comment #2)
You make a good point, but my remaining argument would focus on the fact that
the expression
false && [](){}
is always invalid because it attempts to combine a boolean expression and a
void expression (Not covered by 5.14). This is presumably easy to fix by
ensuring that the lambda expressions return a boolean value. This code still
not accepted by gcc 4.8 nor by clang 3.2. While you may try to insist that it
should, this looks like a potential core language issue to me. I'm forwarding
this problem to CWG. I don't think that any compiler change will be done before
that decision, because the CWG group intentionally tried to forbid lambda
expressions within template declarations because of some known technical
problems.