]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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 | ||
11 | The library is organized into layers of modules, with each module addressing a particular | |
12 | area of responsibility. A module may not depend on modules in higher layers. | |
13 | ||
14 | The library is organized in three layers: | |
15 | ||
16 | [heading Layers] | |
17 | ||
18 | [:[$images/fusion_org.png]] | |
19 | ||
20 | The entire library is found in the `"boost/fusion"` directory. Modules are | |
21 | organized in directories. Each module has its own header file placed in | |
22 | the same directory with the actual module-directory. For example, there | |
23 | exists `"boost/fusion/support.hpp"` in the same directory as | |
24 | "boost/fusion/support". Everything, except those found inside "detail" | |
25 | directories, is public. | |
26 | ||
27 | There is also a `"boost/fusion/include/"` directory that contains all the | |
28 | headers to all the components and modules. If you are unsure where to | |
29 | find a specific component or module, or don't want to fuss with | |
30 | hierarchy and nesting, use this. | |
31 | ||
32 | The library is header-only. There is no need to build object files to | |
33 | link 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 | ||
84 | If, for example, you want to use `list`, depending on the granularity that | |
85 | you 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 | ||
92 | The first includes all containers The second includes only `list` | |
93 | [footnote Modules may contain smaller components. Header file | |
94 | information for each component will be provided as part of the | |
95 | component's documentation.]. | |
96 | ||
97 | [endsect] |