Subject: Re: [boost] [spirit] VC10 ICE when defining a Karma/Qi rule in a 0x lambda
From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2010-04-28 20:53:22
> I reported a spirit bug  and a kind soul on the #boost channel linked me
> a similar Microsoft Connect bug , which seems to have sadly been
>  http://connect.microsoft.com/VisualStudio/feedback/details/541534/internal-compiler-error-in-lambda-expression#
It wasn't ignored - one of our compiler front-end testers tried to reproduce it twice and was unable to. (Note that because the bug wasn't reactivated, we didn't see the last two comments. Since I don't actually know what happens when a Connect bug is reactivated, whenever I resolve Connect bugs about the Standard Library, I just provide my E-mail address.)
I've reproduced this with VC10 RTM and I've filed internal bug number 895716. I can't promise that this will be fixed in C1XX, but ICEs-on-valid are considered very obnoxious.
(By the way, even if we had been able to reproduce this originally, there would have been no way to fix a bug reported in 3/12/2010 in VC10 RTM.)
> VC10 has some basic support for C++0x lambdas, but it seems to be too buggy
> to be useful. I'd suggest to wait for an update, but wouldn't hold my
Actually, several lambda fixes were recently checked into one of our branches. I live in a different branch so I can't easily say whether those fixes apply to this ICE.
One problem, on top of the fact that new features always have bugs, is that the original specification of lambdas was very unclear about a number of corner cases. This was fixed in the C++0x Working Paper, but not in time for us to implement it. VC10 implements what I refer to as "lambdas v1.0" while GCC 4.5.0 implements "lambdas v1.1". The difference is most apparent when it comes to nested lambdas and name lookup.
Stephan T. Lavavej
Visual C++ Libraries Developer
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk