THE BOOST MPL LIBRARY: Physical Structure

Front Page / Technical Details / Physical Structure

# Physical Structure

The library uses a fine-grained header structure with one header per public component (class/function template), with the header named after the component. For example, `boost::mpl::apply` is defined in the header `<boost/mpl/apply.hpp>`. This scheme ensures both that we don't pay for what we don't use in terms of compilation time and header dependencies, and frees us from memorizing the relationship between a given header and the components it provides. For entities that are likely to be used together, such as arithmetic metafunctions (`plus`, `minus`, `times`, et. al.), the library also supplies appropriately-named composite headers (`<boost/mpl/airthmetic.hpp>`) as a convenience.