Boost logo

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