Введение

Библиотеки C++

Boost — это набор библиотек для языка программирования C++, предоставляющий поддержку для таких задач и структур, как линейная алгебра, генерация псевдослучайных чисел, многопоточность, обработка изображений, регулярные выражения и модульное тестирование. Он содержит 164 отдельные библиотеки (на момент версии 1.76). Все библиотеки Boost лицензированы в соответствии с лицензией Boost Software License, разработанной для обеспечения возможности использования Boost как в проектах с открытым исходным кодом, так и в проприетарных проектах. Многие из основателей Boost входят в комитет по стандартизации C++, и несколько библиотек Boost были приняты для включения в технический отчёт C++1, стандарт C++11 (например, умные указатели, потоки, регулярные выражения, случайные числа, отношение, кортежи) и стандарт C++17 (например, файловая система, any, optional, variant, string_view). Сообщество Boost сформировалось примерно в 1998 году, когда была выпущена первая версия стандарта. С тех пор оно непрерывно растёт и сейчас играет важную роль в стандартизации C++. Несмотря на отсутствие формальных связей между сообществом Boost и комитетом по стандартизации, некоторые разработчики активно участвуют в обеих группах.

Дизайн

Библиотеки предназначены для широкого круга пользователей C++ и различных областей применения. Они охватывают широкий спектр, от библиотек общего назначения, таких как библиотека умных указателей, до абстракций операционной системы, например Boost FileSystem, и библиотек, ориентированных главным образом на разработчиков других библиотек и опытных пользователей C++, таких как метапрограммирование шаблонов (MPL) и создание предметно-ориентированных языков (DSL) (Proto). Для обеспечения эффективности и гибкости Boost активно использует шаблоны. Boost стал источником значительных исследований и разработок в области обобщенного и метапрограммирования на C++. Большинство библиотек Boost имеют формат заголовков, состоящих из встроенных функций и шаблонов, и поэтому не требуют предварительной компиляции для использования. Некоторые библиотеки Boost существуют как отдельные библиотеки.

Связанные лица

Основатели Boost, которые до сих пор активно участвуют в сообществе, среди них Дэвид Абрахамс. Николай Джосуттис, автор нескольких книг по C++, внес вклад в библиотеку массивов Boost в 2001 году. По состоянию на 2023 год существуют активные списки рассылки, посвященные использованию и разработке библиотек Boost.