
I think I would have preferred a more consistent numbering system - a bit like BOOST_VERSION maybe:
#define BOOST_GCC (__GNUC__*10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
Look reasonable
Of course even that can in theory go wrong, but it does make checks easier to read (because of greater consistency between gcc 2 and 3):
#if BOOST_WORKAROUND(BOOST_GCC, <= 29500) #else BOOST_WORKAROUND(BOOST_GCC <= 30400) // etc....
Any other thoughts?
Do you want me to check this in?
If you're happy with it, then yes please do go ahead, I think it's a little better than the original scheme.
P.S. While we are at it shouldn't we make sure we have single recognizable macro for each compiler we support (using above convention or the natural one supplied by compiler):
BOOST_BORLAND BOOST_CAMEAU ... BOOST_VACPP BOOST_MSVC
Provided the compiler uses just one macro to identify itself I don't think we need to go that far just yet. Here's hoping anyway... John.