...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Copyright: | Copyright © Aleksey Gurtovoy and David Abrahams, 2002-2004. |
---|---|
License: | Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
The Boost.MPL library is a general-purpose, high-level C++ template metaprogramming framework of compile-time algorithms, sequences and metafunctions. It provides a conceptual foundation and an extensive set of powerful and coherent tools that make doing explict metaprogramming in C++ as easy and enjoyable as possible within the current language.
There are several places to start when getting familiar with the library, depending on what you know about metaprogramming in general and C++ template metaprogramming in particular. Starting with Boost version 1.32, the MPL comes with both an in-depth tutorial on its fundamental concepts and an annotated reference manual covering all concepts and components in the library. While the tutorial only uncovers a bit of what there is to C++ metaprogramming and the MPL, it's a perfect place to start if you are only somewhat familiar with the subject. At the very least, after you're done with it, you will be able to put the rest of the stuff that appears here into context. The reference manual is the resource for you if you plan — or are already doing — some actual development with the library, but a casual reading is still allowed and likely to bring many insights on the framework's organization and underlying ideas. Finally, the top-level sections in this document that you see highlighted below might also offer something of interest.
So, welcome, and happy metaprogramming!