Lars Viklund wrote:
On Mon, Nov 29, 2010 at 11:31:03AM -0800, Simonson, Lucanus J wrote:
I can fix this for the next release, however, for the second change it should actually use BOOST_POLYGON_MSVC and not _WIN32. It was an oversight on my part that it was using the WIN32 instead of BOOST_POLYGON_MSVC macro. It was a bug fix I added for older versions of the ICC compiler (and EDG frontend in general) which weren't doing SFINAE properly in a way that was mutually exclusive with the way MSVC 7.1, 8 and 9 doesn't do SFINAE properly. Gcc worked either way so I singled out MSVC for the special behavior so that gcc, icc and all compilers that might use old versions of EDG frontend that I don't know about would work by default. Apparently when I made the fix I used the wrong macro name. I doubt you are using Polygon with BOOST_POLYGON_NO_DEPS defined, so it is the second instance of WIN32 that was causing you trouble and it was my error in using WIN32 instead of BOOST_POLYGON_MSVC that caused you the problem. You should see a commit to trunk soon.
Surely Boost.Config contains Boost-global functionality for platform detection?
Indeed it does, and by default BOOST_POLYGON_MSVC is defined if BOOST_MSVC is defined. Only if the user defines BOOST_POLYGON_NO_DEPS does Polygon attempt to compile without any dependency on boost what-so-ever and in that case I set BOOST_POLYGON_MSVC if I detect WIN32 macro is defined.
#ifndef BOOST_POLYGON_NO_DEPS
#include