$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2006-01-28 21:53:15
"Paul Mensonides" <pmenso57_at_[hidden]> wrote
> BOOST_PP_IF(1, BOOST_PP_ENUM_PARAMS(3, p), blah)
> ENUM_PARAMS is an intermediate if the
> repetition count is higher than one. An "intermediate" is a single
argument
> that expands to multiple arguments--which creates pathological input that
IF
> cannot deal with:
>
> #define IF(cond, t, f) IIF(BOOL(cond), t, f)
>
> When IF is invoked, the argument for 't' (in particular) gets expanded
prior to
> substitution of 't' in the replacement list of IF (long before IIF is
invoked).
> This results in:
>
> IIF(BOOL(1), p0, p1, p2, blah)
>
> Which is clearly too many arguments to IIF.
Well, this was simple :-)
Thanks a lot for the explanation.
Regards,
Arkadiy