|
Boost : |
From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2004-03-04 19:06:20
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Jonathan Turkanis
> > #define PARAM(has_param) BOOST_PP_IF( \
> > has_param \
> > , BOOST_PP_IDENTITY(typename Param) \
> > , BOOST_PP_EMPTY)()
> >
>
> Yes, that's better. It's hard to believe that VC6 could be
> the only conforming preprocessor on this point. though ;-)
It isn't that other compilers are non-conforming, they just chose a different
way to handle undefined behavior. C++ will likely soon have the new facilities
of C99's preprocessor, which will include variadic macros and placemarkers
(which would allow your original code). So, other preprocessors are just using
forward-thinking to handle the undefined behavior, while VC's preprocessor (all
the way through VC71) is just a complete relic.
Regards,
Paul Mensonides
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk