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