$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Michiel Salters (michiel.salters_at_[hidden])
Date: 2005-02-10 03:50:12
> -----Original Message-----
> From: boost-bounces_at_[hidden] 
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Paul Mensonides
> Sent: woensdag 9 februari 2005 23:44
> To: boost_at_[hidden]
> Subject: RE: [boost] Re: Wave C++ Review Begins Today - 
> February 7, 2005
> 
> > -----Original Message-----
> > From: boost-bounces_at_[hidden]
> > [mailto:boost-bounces_at_[hidden]] On Behalf Of Hartmut Kaiser
[ attribution already lost ]
 
> > > b. Sometimes it may be useful to be able to "partially
> > >     preprocess" given source. E.g. I would like to
> > >     have cleaner version of STLport just for my platform.
> > > 
> > >     It would be nice if I could specify list of
> > >     #defines and #undefines to be processed, the rest
> > >     left as is.
> > 
> > Hmmm, that's more complex, I'll have to think about this.
> 
> That is actually a lot more complex.  It implies a heavy duty 
> dependency analysis on, for example, macros.  I think that 
> implementing this would be more complex (to do correctly) 
> than the entire preprocessor altogether.
I've been thinking about this as well. I'm not sure if we actually
want the same, but my idea was to have a partial-evaluation mode
which would replace only those tokens actually defined, and evaluate
only those #ifdef( )/#if statements that depend on the macros
explicitly defined or undefined.
I suspect the major internal difference is that in full evaluation
a macro is either defined or undefined, while in partial evaluation
it can also be not evaluated.
The technically tricky stuff is probably neatly rewriting complex
#if (a&&b||c) conditions. Requirement-wise it's what to do with 
#include'd files.
Regards,
Michiel Salters
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.