...one of the most highly
regarded and expertly designed C++ library projects in the
world. — Herb Sutter and Andrei
The library is organized into layers of modules, with each module addressing a particular area of responsibility. A module may not depend on modules in higher layers.
The library is organized in three layers:
The entire library is found in the
directory. Modules are organized in directories. Each module has its own header
file placed in the same directory with the actual module-directory. For example,
in the same directory as "boost/fusion/support". Everything, except
those found inside "detail" directories, is public.
There is also a
directory that contains all the headers to all the components and modules.
If you are unsure where to find a specific component or module, or don't want
to fuss with hierarchy and nesting, use this.
The library is header-only. There is no need to build object files to link against.
If, for example, you want to use
depending on the granularity that you desire, you may do so by including one
#include <boost/fusion/container.hpp> #include <boost/fusion/include/container.hpp> #include <boost/fusion/container/list.hpp> #include <boost/fusion/include/list.hpp>
The first includes all containers The second includes only
 Modules may contain smaller components. Header file information for each component will be provided as part of the component's documentation.