
Now if the compiler is *really* VC10, then your workaround code isn't activated and everything is OK, but when the compiler is Intel sitting on top of MSVC, BOOST_MSVC is rightly not defined, so:
Is there any chance this was changed recently?
No it's always been that way: BOOST_MSVC indicates that the compiler is *really* msvc as opposed to some other compiler emulating it.
Furthermore, I've just checked the headers on my HD and VC8, 9 and 10 all do define that symbol in stdlib.h in exactly the same way:
Would that be the case, VC8 and VC9 showed up the same failures we observe with Intel, since the workaround is enabled for these compilers. And this is not the case. I do not remember all the details, but I believe the symbol only defined under some conditions we do not meet.
No, _MSC_VER == 1400 is VC8, so the workaround is only enabled for for VC7.1 and earlier. John.