
- The above assume a NULL defined style macro rather than an undefined macro style – as has been mentioned I think perhaps undefined macros are the better choice for these very low level definitions. I’d suggest it’s likely that if you have to use these for areas of the code then the code being blocked off is likely not legal in most other cases (and so the alternative C++ compiler “if” usage would not be possible anyway and so removes the only reason I can see to have things as they are). Ahem - this point can be safely ignored :o)
I actually knew this wasn't the "only" reason to have things as they are even before it was spelled out (in another post) - honest! I blame a sleep addled brain. However, the choice between undefined and null defined is perhaps best left to the user? So, a set of BOOST_CXX_GCC and associated BOOST_CXX_GCC_VERSION might be worth doing - the first is defined only on when the compiler is GCC (or emulates GCC) the second is always defined, but null when not GCC. Best of both worlds, no? Iain