Boost logo

Boost :

From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2002-06-17 23:33:01


> That should fix all the problems in 'apply.hpp' and 'count_if_not.hpp' (and
> possibly others). However, I swear this is going to come up again. A few
days
> ago, Vesa changed a whole bunch of macros to use BOOST_PP_DETAIL_CAT2 (etc.)
> instead of having delay macros like the above. While what he did is legal and
> compiles on compliant compilers, VC++ chokes to death on it. In any case, the
> CVS change logs are filled with "Using private detail CAT to avoid DELAY
macros"
> notes. They are all going to have to be changed back at some point. Either
> that, or have separate implementations for VC++ and possibly Metrowerks.

Actually, you better change 'expr_if.hpp' as well (just in case). I think that
will fix all of the library constructs.

// remove the inclusion of <boost/preprocessor/detail/cat.hpp>

// change BOOST_PP_EXPR_IF to this:

#define BOOST_PP_EXPR_IF(COND,EXPR) \
    BOOST_PP_EXPR_IF_BOOL(BOOST_PP_BOOL(COND),EXPR)
#define BOOST_PP_EXPR_IF_BOOL(COND,EXPR) \
    BOOST_PP_EXPR_IF_BOOL_DELAY(COND,EXPR)
#define BOOST_PP_EXPR_IF_BOOL_DELAY(COND,EXPR) \
    BOOST_PP_EXPR_IF##COND(EXPR)

But I think that user code might still run into this type of problem--so I think
that all the BOOST_PP_DETAIL_CAT2 (etc.) changes should be rolled back so at
least the library is ready for it.

Paul Mensonides


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