fusion/doc/organization.qbk
2015-01-12 23:34:13 +09:00

98 lines
2.6 KiB
Plaintext

[/==============================================================================
Copyright (C) 2001-2011 Joel de Guzman
Copyright (C) 2006 Dan Marsden
Use, modification and distribution is subject to 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)
===============================================================================/]
[section Organization]
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:
[heading Layers]
[:[$images/fusion_org.png]]
The entire library is found in the `"boost/fusion"` 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, there
exists `"boost/fusion/support.hpp"` in the same directory as
"boost/fusion/support". Everything, except those found inside "detail"
directories, is public.
There is also a `"boost/fusion/include/"` 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.
[heading Directory]
* tuple
* algorithm
* auxiliary
* iteration
* query
* transformation
* adapted
* adt
* array
* boost::array
* boost::tuple
* mpl
* std_pair
* std_tuple
* struct
* view
* filter_view
* flatten_view
* iterator_range
* joint_view
* nview
* repetitive_view
* reverse_view
* single_view
* transform_view
* zip_view
* container
* deque
* list
* map
* set
* vector
* generation
* mpl
* functional
* adapter
* generation
* invocation
* sequence
* comparison
* intrinsic
* io
* iterator
* support
[heading Example]
If, for example, you want to use `list`, depending on the granularity that
you desire, you may do so by including one of
#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 `list`
[footnote Modules may contain smaller components. Header file
information for each component will be provided as part of the
component's documentation.].
[endsect]