Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-06-17 07:06:38


Gennaro Prota <gennaro_prota_at_[hidden]> writes:

> On Thu, 15 Jun 2006 13:19:36 -0400, David Abrahams
> <dave_at_[hidden]> wrote:
>
>> BOOST_WORKAROUND(CXX_MSVC, <=, 7,1,0)
>> BOOST_WORKAROUND(CXX_MSVC, tested_at, 7,1,0)
>>
>>is an implementable syntax.
>
> I'd have three questions, but maybe it's quicker to ask directly: "can
> you post the implementation you are thinking to?"

Sorry, what I was thinking of won't work because you can't paste
anything onto "<=". But

   BOOST_WORKAROUND(CXX_MSVC, <=, 7,1,0)
   BOOST_WORKAROUND(CXX_MSVC, BOOST_TESTED_AT, 7,1,0)

ought to work.

Something like:

# ifndef BOOST_STRICT_CONFIG

# define BOOST_WORKAROUND(symbol, test, major, minor, subminor) \
        ((symbol != 0) \
        && (1 % (( ( \
            symbol test( BOOST_VERSION(major,minor,subminor))) ) + 1)))

# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
# define BOOST_OPEN_PAREN (
# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1
# else
# define BOOST_TESTED_AT(value) != ((value)-(value))
# endif

# else

# define BOOST_WORKAROUND(symbol, test, major, minor, subminor) 0

# endif

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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