Boost logo

Boost :

Subject: Re: [boost] [test] Still having issues
From: Gennadiy Rozental (rogeeff_at_[hidden])
Date: 2011-10-13 13:06:55


John Maddock <boost.regex <at> virgin.net> writes:

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

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

> So I suggest that:
>
> * You change the definition of _invalid_parameter_handler to the correct
> one, and,

This is not necessary and indeed may not be possible. I am not sure the type was
always defined the same way on all platforms this workaround is intended to work
on. In any case this is just a stop gap. Empty function right below the typedef
does not care about the real type

> * Use _MSC_VER in place of BOOST_MSVC in the pp-test:
>
> # if (!BOOST_WORKAROUND(_MSC_VER, >= 1400 ) && \
> !defined(BOOST_COMO)) || defined(UNDER_CE)

And _MSC_VER is defined for Intel toolset, right?

Yes. I think this is the right move. At some point there was push to use
BOOST_MSVC consistently instead of _MSC_VER, but not in this case apparently.

Gennadiy


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk