The Boost Preprocessing library is a library of macros, with
support for preprocessor metaprogramming. The library supports
both C++ and C compilation. It does not depend on any other Boost
libraries and therefore may be used as a standalone library.
The library requires that the compiler supports variadic macros
variadic macros are a C99 or C++11 feature the library ostensibly
requires at least compilation at those C or C++ standard levels. A
number of compilers support variadic macros at a lower level, so
it still may be possible using the library at that compilation
level, as long as strict C++98/C++03 compliance is not enforced.
An excerpt from C++ Template Metaprogramming: Concepts,
Tools, and Techniques from Boost and Beyond
by Dave Abrahams
and Aleksey Gurtovoy has been made available
This excerpt contains a basic introduction to the Preprocessor
library and preprocessor metaprogramming which may help users new
to the library and users interested in seeing some of the
facilities offered by the library.