On Jul 12, 2015 11:14 AM, "Edward Diener"
On 7/12/2015 12:46 PM, Rene Rivera wrote:
On Jul 12, 2015 10:01 AM, "John Maddock"
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 (
http://www.boost.org/development/tests/develop/developer/output/GLIS-homo-im...
) where the compiler is identified as BOOST_COMP_EDG and both BOOST_COMP_GNUC_EMULATED and BOOST_COMP_INTEL_EMULATED are set to non-zero 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.
Yes.. That's how it loosely works. I wasn't asking about how to implement it.. I was asking about correctness. As it's easy to change this.