Boost logo

Boost :

From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2006-01-07 20:55:56


> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Brad King

> > How does this effect the preprocessor library--aside from avoiding
> > workarounds that GCC will report as ill-formed?
>
> I don't think it does, but Dave Abrahams asked me to get your
> attention by mentioning the preprocessor library:
>
> http://www.gccxml.org/pipermail/gccxml/2006-January/000698.html
>
> I think my post on the gccxml list used slightly confusing
> wording and Dave thought this required only preprocessor
> parsing work-arounds.
> However, I wasn't sure if he was implying that you were the
> right person to make all the changes. Sorry for the confusion.

Well, the pp-lib presents the same interface on all supported preprocessors. If
something cannot be ported (via workarounds) to a particular preprocessor, the
mechanism simply isn't exposed as an interface, though the pp-lib implementation
itself may use it internally. There are a few internal interfaces that are
really useful that aren't presented as external interfaces. Some of those are
used by users anyway. That's fine; I've recommended it many times along with
the portability warning. However, there is nothing in the pp-lib that gcc's
preprocessor can't handle--it is a very good preprocessor--with the exception of
workarounds present for broken preprocessors. Some of those workarounds involve
code that is either illegal or utilitizes undefined behavior. Explicitly
catching __GCCXML__ should prevent the library from using any of these
workarounds in the pp-lib itself. However, I obviously can't guarantee anything
about what clients of the pp-lib might be doing for portability.

> > Changing that is simple enough for the preprocessor
> library. Already
> > done--the configuration recognizes __GCCXML__ and defines
> > BOOST_PP_CONFIG_FLAGS accordingly.
>
> Great, thanks.

No problem.

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