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). (Прото).
Чтобы обеспечить эффективность и гибкость, 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 , Фондом свободного программного обеспечения . [12]