Boost logo

Boost :

From: Hartmut Kaiser (hartmutkaiser_at_[hidden])
Date: 2003-03-25 06:50:13

Hi all,

There is a new version of the 'Wave C++/C99 preprocessor library'
available: it is V0.9.1.

This library consists out of
- a set of (template-) classes exposing an iterator interface, which
when dereferenced return the preprocessed tokens, generated on the fly
from an underlying arbitrary iterator based input stream
- a (sample) driver program, which is a full blown C++/C99 preprocessor,
usable on top of any other every day compiler of your choice

If the first public release of Wave (the V0.9.0) was merely a proof of
concept, so this new release (the V0.9.1) has the following highlights:

- full compliance with the C++ Standard [ISO/IEC 14882:1998] reached and
verified with the help of a 'strict' version of the Boost.Preprocessor
library of Paul Mensonides, which couldn't be used even with EDG based
compilers (Comeau/Intel).
- implemented variadics (macros with variable parameter count) and
placemarkers (empty macro arguments) usable as an optional extension to
the C++ Standard
- implemented a C99 mode, which has variadics and placemarkers enabled
by default (as mandated by the C99 Standard [INCITS/ISO/IEC 9899:1999])
and which additionally rejects certain C++ tokens (the alternative
keywords as 'and', 'or' etc. and the '::', '->*', '.*' operators), which
are invalid for C99
- updated the documentation (look here:
- major speedup (this depends on the complexity of the compiled code and
may reach upto 3-5 times if compared to the Wave V0.9.0 code)
- the interface of the library has settled, fixed a lot of minor and
major bugs
- added Jamfile.v2 to allow a convenient build process for gcc based

Wave is tested to be compilable and working with VC7.1 (final beta), gcc
(Cygwin and Linux), Intel V7.0 (Stlport4.5.3 and DinkumwareSTL from

The Wave V0.9.1 library can be downloaded here: It is usable under a license
compatible with the Boost licensing schemes.

Any comments are very much appreciated.
Regards Hartmut

Boost list run by bdawes at, gregod at, cpdaniel at, john at