Boost logo

Boost Users :

From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2007-07-04 18:04:17


Ovanes,

> > The changes are committed to Boost::CVS head. Please note that in
> > order to implement this correctly I had to fix a bug in Spirit as
> > well, which is currently committed to the CVS::HEAD only
> (we'll try to
> > get this into 1.34.1, but can't promise...).
>
> If I get CVS Head revisions of wave and spirit, this should
> be fine. Isn't it?

This should be fine.

> > This isn't implemented yet and requires a bit more effort to do so.
> > Give me
> > some time to think about this, ok?
>
> I can live with the really quick bug fixes you submitted. But
> I think this can be a nice to have feature, to control the
> preprocessing process. ;)

You have it now (see my other mail). Even if I still think its of limited
use only (if you skip the expansion of a macro inside a #if expression, the
whole expression may get invalid, and there is no way to circumvent that).
But please go ahead and try it out.

> > But there is another feature, which might be interesting for you in
> > this context. The Wave driver tool has some #pragma's allowing to
> > redirect or suppress the genereated output, which actually
> gives you
> > some kind of partial preprocessing feature:
> >
> > #pragma wave option(output: "preprocessed/directory.hpp")
> >
> > Where the argument to the output option may be a "file
> name", null (no
> > output), default (output as specified on the command line), or
> > push/pop (with the obvious semantics).
>
> If I correctly understand you, I can predefine pragma
> directives and pass them to context, to suppress some
> output?? If so, it can be a workaround, but with some harder
> work to do as the iversion ;) My intention would be to define
> only 3 headers which might be required for my preprocessing
> task, as to enumerate all other 30 which should be
> excluded... And in my case there are different headers (to be
> excluded) in different app modules, but these 3 headers stay the same.

I was not consise enough: the #pragma's are all implemented in the wave
driver by overloading the interpret_pragma() pp hook. So this isn't really
an option for you. But you may want to have a look there anyways....

Regards Hartmut


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net