Boost — это набор библиотек для языка программирования C++ , который обеспечивает поддержку таких задач и структур, как линейная алгебра , генерация псевдослучайных чисел , многопоточность, обработка изображений , регулярные выражения и модульное тестирование . Он содержит 164 отдельные библиотеки (начиная с версии 1.76). [3]
Все библиотеки Boost лицензированы в соответствии с лицензией Boost Software License, разработанной для того, чтобы Boost можно было использовать как с бесплатными , так и с проприетарными программными проектами. [4] Многие из основателей Boost входят в комитет по стандартам C++ , и несколько библиотек Boost были приняты для включения в Технический отчет C++ 1 , стандарт C++11 (например, интеллектуальные указатели, поток, регулярные выражения, случайные числа, отношение, кортеж) [5] [6] и стандарт C++17 (например, файловая система, любой, необязательный, вариант, string_view). [7]
Сообщество Boost возникло около 1998 года, когда была выпущена первая версия стандарта. С тех пор оно непрерывно росло и теперь играет большую роль в стандартизации C++. Несмотря на отсутствие формальных отношений между сообществом Boost и комитетом по стандартизации, некоторые разработчики активно работают в обеих группах.
Библиотеки нацелены на широкий круг пользователей C++ и прикладных областей. Они варьируются от библиотек общего назначения, таких как библиотека интеллектуальных указателей , до абстракций операционной системы , таких как Boost FileSystem , и библиотек, в первую очередь нацеленных на других разработчиков библиотек и продвинутых пользователей C++, таких как метапрограммирование шаблонов (MPL) и создание предметно-ориентированного языка (DSL) (Proto).
Для обеспечения эффективности и гибкости Boost широко использует шаблоны . Boost стал источником обширной работы и исследований в области обобщенного программирования и метапрограммирования в C++. [8]
Большинство библиотек Boost основаны на заголовках , состоят из встроенных функций и шаблонов, и, как таковые, не требуют сборки перед использованием. Некоторые библиотеки Boost сосуществуют как независимые библиотеки. [9] [10]
Среди основателей Boost, которые до сих пор активны в сообществе, есть Дэвид Абрахамс . Автор нескольких книг по C++, Николай Джосуттис, внес вклад в библиотеку массивов Boost в 2001 году. Существуют списки рассылки, посвященные использованию библиотеки Boost и разработке библиотеки, активные по состоянию на 2023 год [обновлять]. [11]
Boost лицензируется по собственной свободной лицензии с открытым исходным кодом , известной как Boost Software License. [13] Это разрешительная лицензия в стиле лицензии BSD и лицензии MIT , но без требования указания авторства для распространения в двоичной форме . [14] Лицензия была одобрена OSI с февраля 2008 года [15] [16] и считается лицензией свободного программного обеспечения , совместимой с GNU General Public License , организацией Free Software Foundation . [12]