Boost logo

Boost :

From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2003-04-10 20:20:54


Giovanni Bajo wrote:
> Paul Mensonides <pmenso57_at_[hidden]> wrote:
>
>> There are three caveats: first, only two preprocessors, AFAIK, can
>> handle the strict pp-lib: wave and gcc.
>
> Which version(s) of GCC?

I'm using gcc 3.2 running under Cygwin. I can't speak for other versions.

>> Not even EDG can handle it (and I'm not referring to speed).
>
> Do you know if the EDG guys are planning any work on their
> preprocessor?

I have submitted several bug reports, and when I finish the implementation and
documentation of the "strict" pp-lib, I will submit several more. It is likely
that they will fix the problems that cause the "strict" pp-lib not to work.
They may or may not fix the speed issues simultaneously, but I doubt it. I'll
take this up with Daveed in a week or two.

> Otherwise I suppose one could use Wave has an external
> PP and feed data to whatever compiler you want, including Comeau.

Yes, and Wave is a great tool for pp-metaprogramming. It includes a great
tracing facility and the ability to enable variadics and placemarkers in C++.
You can also enable the inline _Pragma from C99 and do isolated pp debugging:

#define A(x) \
    _Pragma("wave trace(enable)") B() \
    _Pragma("wave trace(disable)") C() \

This will only trace the expansion of B. This is a great facility! On the same
debugging front, Wave has another _Pragma to cause a full stop and emit a
user-defined error message--all subject to macro expansion of course (which is
why it is important for debugging.) Wave is a great tool that is getting better
every day.

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