Boost logo

Boost :

Subject: Re: [boost] [predef] Fails on Intel/win
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-07-12 13:14:01

On 7/12/2015 12:46 PM, Rene Rivera wrote:
> On Jul 12, 2015 10:01 AM, "John Maddock" <jz.maddock_at_[hidden]> wrote:
>> On 12/07/2015 14:05, Edward Diener wrote:
>>> On 7/12/2015 4:42 AM, John Maddock wrote:
>>>> BOOST_COMP_INTEL is set to 0, which means that
>>>> [ predef-require "BOOST_COMP_INTEL" ]
>>>> fails.
>>>> __INTEL_COMPILER is set to 1500.
>>>> BOOST_COMP_INTEL is set to ( (((0)%100)*10000000) + (((0)%100)*100000) +
>>>> ((0)%100000) )
>>> You can also see this on the regression tests for intel-linux (
> ) where the compiler is identified as BOOST_COMP_EDG and both
> values.
>> It's not emulating the Intel compiler, it *is* the Intel compiler with
> version number 15.0, irrespective of whose front end they're using
> internally.
> So it should be.. INTEL, EDG EMULATED, and GNUC EMULATED? Should it always
> be the case that EDG be marked as EMULATED?

Does it have to do with the order of the compilers you are checking ? If
so, isn't the idea to at least check compilers which are not emulating
other compilers first before you check compilers which could be
emulating other compilers ? I don't believe the Intel compiler is
emulating any other compiler, so if it were checked before EDG and GNUC
the result should be correct. I haven't looked carefully at your predef
logic for compilers but it appears to rely on the order in which your
compiler header files are being included and from what I can see that
order is purely alphabetic in compiler.h.

Boost list run by bdawes at, gregod at, cpdaniel at, john at