organization.qbk 2.6 KB

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