• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[/==============================================================================
2    Copyright (C) 2001-2011 Joel de Guzman
3    Copyright (C) 2006 Dan Marsden
4
5    Use, modification and distribution is subject to the Boost Software
6    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7    http://www.boost.org/LICENSE_1_0.txt)
8===============================================================================/]
9[section Organization]
10
11The library is organized into layers of modules, with each module addressing a particular
12area of responsibility. A module may not depend on modules in higher layers.
13
14The library is organized in three layers:
15
16[heading Layers]
17
18[:[$images/fusion_org.png]]
19
20The entire library is found in the `"boost/fusion"` directory. Modules are
21organized in directories. Each module has its own header file placed in
22the same directory with the actual module-directory. For example, there
23exists `"boost/fusion/support.hpp"` in the same directory as
24"boost/fusion/support". Everything, except those found inside "detail"
25directories, is public.
26
27There is also a `"boost/fusion/include/"` directory that contains all the
28headers to all the components and modules. If you are unsure where to
29find a specific component or module, or don't want to fuss with
30hierarchy and nesting, use this.
31
32The library is header-only. There is no need to build object files to
33link against.
34
35[heading Directory]
36
37* tuple
38* algorithm
39    * auxiliary
40    * iteration
41    * query
42    * transformation
43* adapted
44    * adt
45    * array
46    * boost::array
47    * boost::tuple
48    * mpl
49    * std_pair
50    * std_tuple
51    * struct
52* view
53    * filter_view
54    * flatten_view
55    * iterator_range
56    * joint_view
57    * nview
58    * repetitive_view
59    * reverse_view
60    * single_view
61    * transform_view
62    * zip_view
63* container
64    * deque
65    * list
66    * map
67    * set
68    * vector
69    * generation
70* mpl
71* functional
72    * adapter
73    * generation
74    * invocation
75* sequence
76    * comparison
77    * intrinsic
78    * io
79* iterator
80* support
81
82[heading Example]
83
84If, for example, you want to use `list`, depending on the granularity that
85you desire, you may do so by including one of
86
87    #include <boost/fusion/container.hpp>
88    #include <boost/fusion/include/container.hpp>
89    #include <boost/fusion/container/list.hpp>
90    #include <boost/fusion/include/list.hpp>
91
92The first includes all containers The second includes only `list`
93[footnote Modules may contain smaller components. Header file
94information for each component will be provided as part of the
95component's documentation.].
96
97[endsect]
98