"Examples of designs that meet most of the criteria for "goodness" (easy to understand, flexible, efficient) are a recursive descent parser, which is traditional procedural code. Another example is the STL, which is a generic library of containers and algorithms depending crucially on both traditional procedural code and on parametric polymorphism."

--Bjarne Stroustrup


Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort. Historically, Spirit releases come bundled with everything necessary to successfully use the library. Starting with 1.6, when Spirit was initially accepted as a boost component, a spirit-only package, that does not include other boost components, is offered in addition to the full package that includes a subset of boost (miniboost) required by the library. If you are already a boost user, you'd want to download spirit-only packages. The full package on the other hand is for those who wish to use Spirit without having to install the boost libraries in full.

Historically, Spirit supported a lot of compilers, including (to some extent) poorly conforming compilers such as VC6. Spirit v1.6.x will be the last release that will support older poorly conforming compilers. Starting from Spirit v1.8.0, ill conforming compilers will not be supported. If you are still using one of these older compilers, you can still use Spirit v1.6.x.

View Change Log




Wave is a C++/C99 preprocessor that is implemented using Spirit. Wave Version 1.0 is the stable release.