Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-07-16 09:08:19

Hi Ferdinand,

> > 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
> defined:
> Borland: __WIN32__ _WIN32
> Digital Mars: _WIN32
> GCC (MinG/W and Cygwin with -mno-cygwin): __MINGW32__ WIN32 _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
> headers,
> 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
> delete
> __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

Yea, I think this makes sense. Though _WIN64 is not used anywhere in config

- Volodya

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