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