$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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