|
Boost : |
From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2002-12-13 02:00:27
----- Original Message -----
From: "David Abrahams" <dave_at_[hidden]>
> And, BTW, can you show us how to do it?
Yes, pick which one of these syntax variants you want, and I'll implement
it.
[note: I'm removing all the extra wrapping parentheses here for clarity.]
Normal usage would generate this:
#if __SUNPRO_CC != 0 && __SUNPRO_CC <= 0x530
BTW: The test against zero is redundant. Any "word" other than "true" or
"false" will get converted to 0 if it is not defined. So you could just
have:
__SUNPRO_CC && __SUNPRO_CC <= 0x530
The error/warning usage would generate this (or similar):
#if __SUNPRO_CC != 0 && 1 % (__SUNPRO_CC <= 0x530)
...if "BOOST_DETECT_OUTDATED_WORKAROUNDS" is defined or defined to be
non-zero. Otherwise it would expand to:
#if __SUNPRO_CC != 0
Here is a summary of syntax possibilities:
// normal usage:
BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
// extended usage:
BOOST_WORKAROUND(__SUNPRO_CC, BOOST_CURRENT_VERSION(0x530))
BOOST_WORKAROUND(__SUNPRO_CC, (0x530))
BOOST_WORKAROUND(__SUNPRO_CC, (BOOST_CURRENT_VERSION) 0x530)
BOOST_WORKAROUND(__SUNPRO_CC, BOOST_CURRENT_VERSION 0x530)
BOOST_WORKAROUND(__SUNPRO_CC, (?) > 0x530)
In other words, there are a lot of possibilities. Consider my other list
bogus.
Paul Mensonides
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk