Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2002-12-13 08:09:15


"Paul Mensonides" <pmenso57_at_[hidden]> writes:

> ----- 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

I know, but I'm paranoid ;-)

> 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

Sounds good.

> 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.

Unfortunately I like all of the above except the last one. I'd even
like the last one, perhaps best of all, if it were:

     BOOST_WORKAROUND(__SUNPRO_CC, (?) <= 0x530)

So I think I'll have to ask other people to weigh in here. Do you
have any preferences, anyone?

-- 
                       David Abrahams
   dave_at_[hidden] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk