http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56039



--- Comment #4 from Hubert Tong <hstong at ca dot ibm.com> 2013-01-19 20:10:59 
UTC ---

(In reply to comment #3)

I seem to find that the expression in question

> 

> false && [](){}

> 

is valid because there is a implicit conversion sequence consisting of a

user-defined conversion to pointer-to-function followed by a conversion to bool

from the pointer type.



> 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.

Sure. While I may not have a full appreciation of the difficultly for having an

implementation which works with this, I am aware that there is at least the

issue with mangling hinted at by the note in 14.5.6.1 [temp.over.link] p7 with

regards to the linking of equivalent declarations.



I am not sure, though, that implementation difficulty is a good reason to

remove the ability to have SFINAE applied on statements such as the declaration

in the IsConstructibleImpl specialization above.

Reply via email to