Introduction

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. Since 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.