Библиотека организована в слои модулей, причем каждый модуль относится к определенной области ответственности. Модуль не может зависеть от модулей более высоких уровней.
Библиотека организована в три слоя:
Вся библиотека находится в каталоге "boost/fusion"
. Модули организованы в каталогах. Каждый модуль имеет свой собственный файл заголовка, размещенный в одном каталоге с фактическим модулем-каталогом. Например, существует "boost/fusion/support.hpp"
в том же каталоге, что и "boost/fusion/support". Все, кроме тех, что находятся в каталогах «подробности», является общедоступным.
Существует также каталог "boost/fusion/include/"
, который содержит все заголовки для всех компонентов и модулей. Если вы не уверены, где найти конкретный компонент или модуль, или не хотите суетиться с иерархией и гнездованием, используйте это.
Библиотека только для заголовков. Нет необходимости создавать объектные файлы для ссылки.
- кортеж
- алгоритм
- вспомогательный
- итерация
- запрос
- преобразование
- адаптация
- массив
- исполнитель: array
- исполнитель: tuple
- мкл
- std_pair
- std_tuple
- структура
- смотреть
- filter_view
- смотреть
- итератор_range
- joint_view
- вид
- повторяющийся_view
- reverse_view
- single_view
- transform_view
- zip_view
- контейнер
- список
- карта
- набор
- вектор
- поколение
- мкл
- функциональный адаптер
- последовательность
- итератор
- поддержка
Если, например, вы хотите использовать список
, в зависимости от требуемой детализации, вы можете сделать это, включив один из следующих элементов:
#include <boost/fusion/container.hpp>
#include <boost/fusion/include/container.hpp>
#include <boost/fusion/container/list.hpp>
#include <boost/fusion/include/list.hpp>
Первый включает все контейнеры. Второй включает в себя только список
.