From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-07-16 09:08:19
> > Does it mean I have to use the same conditional? Which
> > compilers define __WIN32__ or WIN32, but don't define _WIN32?
> > Shouldn't there be a single BOOST_WINDOWS macros to help in
> > this cases?
> The macro _WIN32 was originally hard-coded into the Microsoft compiler
> to recognize the platform. The other vendors took it the same way, but
> maybe because of rapid development in the early ages there are more
> underscored versions available... Here we are macros *32*, as they are
> Borland: __WIN32__ _WIN32
> Digital Mars: _WIN32
> GCC (MinG/W and Cygwin with -mno-cygwin): __MINGW32__ WIN32 _WIN32 __WIN32
> Metrowerks: _WIN32
> Microsoft: _WIN32
It seems that _WIN32 is defined by all of them....
> The macro WIN32 is meant to be a user-definable option how to enforce
> a WIN32 code if a compiler does not define _WIN32.
Ok. When is it needed, BTW?
> Cygwin platform in POSIX mode is not a WIN32-compatible platform (no
> no libraries), and thus their macros should mark a POSIX code, not Windows:
> GCC (Cygwin in POSIX mode): __CYGWIN__ __CYGWIN32__
> > # endif
> I like the single BOOST_XXX macro idea for all libraries, I would only
> __CYGWIN__, which defines POSIX compatibility.
> And if you like, it is possible to do something like this to be complete:
> BOOST_WIN32 : _WIN32 || WIN32
> BOOST_WIN64 : _WIN64| WIN64
> BOOST_WINDOWS : BOOST_WIN32 || BOOST_WIN64
Yea, I think this makes sense. Though _WIN64 is not used anywhere in config
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk