Being a *template* metaprogramming framework, the MPL concentrates on getting one thing done well and leaves most of the clearly preprocessor-related tasks to the corresponding specialized libraries [PRE]_, [Ve03]_. But whether we like it or not, macros play an important role on today's C++ metaprogramming, and some of the useful MPL-level functionality cannot be implemented without leaking its preprocessor-dependent implementation nature into the library's public interface. .. [PRE] Vesa Karvonen, Paul Mensonides, `The Boost Preprocessor Metaprogramming library`__ __ http://www.boost.org/libs/preprocessor/doc/index.html .. [Ve03] Vesa Karvonen, `The Order Programming Language`, 2003.