Boost logo

Boost :

From: Guillaume Melquiond (gmelquio_at_[hidden])
Date: 2003-05-14 06:47:15


On Wed, 14 May 2003, John Maddock wrote:

> > Your patch does not fix the problem at all.
>
> Ah, I see I got the Intel version check backwards, fixed (hopefully!)

Yes, this time the conditional is correct. Unfortunately, this patch is
still not good: __ICL is not defined so it doesn't work. My version of the
compiler (the standard version available on Intel's website) does not
define __ICL, but only __ICC and __INTEL_COMPILER. So the patch is still
not enough.

As a matter of fact, what is the meaning of ICL? For ICC, it's easy: it's
the acronym of Intel C Compiler. But for ICL, I don't know. By doing a
grep on the Boost source tree, I also saw a lot of place where only __ICL
is tested and not __ICC. If they are supposed to have the same meaning,
maybe all the occurences of __ICC and __ICL should be replaced by a common
macro: BOOST_INTEL_CXX_VERSION (or maybe a shorter version like
BOOST_INTEL).

> > In my opinion, it can even
> > break some working configurations. I would rather use this conditional
> > expression:
> >
> > # if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0 || _CPPLIB_VER ==
> > 310)) && !defined(_STD)
>
> I'm not convinced that _GLOBAL_USING is used consistently between Dinkumware
> libraries (windows vs linux etc), so I'd rather not rely on _GLOBAL_USING at
> all - hence my attempt to check the Intel version number.

I was hoping the Dinkumware library was the same on all the platforms (for
a specific version number) since the one available for Linux tests for the
presence of MSVC and others typical Microsoft macros.

> > since the test _GLOBAL_USING+0 > 0 is false although we want it true with
> > Dinkumware 3.10 (_CPPLIB_VER == 310 and maybe other versions but I don't
> > know them). If there is a way to test the macro _GLOBAL_USING is defined
> > but doesn't have a value, it would be even better: it would work with all
> > the versions of the library that assume "#define _GLOBAL_USING" to be
> > equivalent to "#define _GLOBAL_USING 1".
>
> I don't think it's possible to check for that as far as I know :-(

Yes, it's also what I thought. Too bad.

Regards,

Guillaume


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