Каковы преимущества использования библиотек C++ Boost? [закрытый]

Итак, я читал, и кажется, что библиотеки Boost часто используются на практике (но не в моем магазине). Почему так? и что делает его таким замечательным?

11 ответов


Boost используется так широко, потому что:

  • он является открытым исходным кодом и рецензируемым.
  • обеспечивает широкий ассортимент платформы агностической функциональности, которую STL пропустил.
  • это дополнение к STL, а не замена.
  • многие из разработчиков Boost входят в Комитет по стандарту C++. Фактически, многие части Boost считаются включенными в следующую стандартную библиотеку C++.
  • Это документально хорошо.
  • его лицензия позволяет включать в проекты с открытым и закрытым исходным кодом.
  • его особенности не обычно зависит друг от друга, поэтому вы можете связать только те части, которые вам нужны. [Люк Hermitteс комментарием]

на главной странице:

"...один из самых высоко оцененных и умело разработанных проектов библиотеки C++ в мире." - Херб Саттер и Андрей Александреску, стандарты кодирования C++

"пункт 55: ознакомьтесь с Boost." - Скотт Мейерс, эффективный C++, 3-е изд.

"очевидным решением для большинства программистов является использование библиотеки, которая обеспечивает элегантную и эффективную платформу, независимую от необходимых услуг. Примеры ПОВЫШЕНИЕ..." - Bjarne Stroustrup, абстракция, библиотеки и эффективность в C++

Итак, это ряд широко используемых и принятых библиотек, но зачем вам это нужно?

Если вам нужно:

  • regex
  • функция binding
  • лямбда-функции
  • тесты
  • смарт-указатели
  • noncopyable, дополнительно
  • сериализация
  • generic даты
  • портативный файловая система
  • кольцевые буферы
  • конфигурация utils
  • общая библиотека изображений
  • TR1
  • темы
  • uBLAS

и больше когда вы кодируете на C++, посмотрите на Boost.


потому что они добавляют много недостающих вещей в стандартную библиотеку, поэтому некоторые из них включаются в стандарт.

стимулировать людей не вру:

Почему организация должна использовать Boost?

одним словом, продуктивность. Использование высококачественные библиотеки, такие как Boost ускоряет начальное развитие, приводит к меньше ошибок, уменьшает reinvention-of-the-wheel, and cuts долгосрочные расходы на техническое обслуживание. И так Повышение библиотеки, как правило, становятся де фактические или юридические стандарты, многие программисты уже знакомы с их.

десять библиотек Boost включено в стандартную библиотеку C++ TR1, и поэтому запланированы для более позднего полного стандартизация. Больше библиотек Boost находятся в конвейере для TR2. С помощью Boost библиотеки дает организации фору в принятии новых технологии.

многие организации уже используют программы реализовано с Boost, как Саман Acrobat Reader 7.0.


несколько классов Boost очень полезны (shared_ptr), но я думаю, что они немного спятили с чертами и концепциями в Boost. Время компиляции и огромные двоичные размеры совершенно безумны с Boost, как и в случае с любым шаблоном-тяжелым кодом. Должен быть баланс. Я не уверен, что Boost нашел его.


Он добавляет библиотеки, которые позволяют более современный подход к программированию на C++.

по моему опыту, многие программисты на C++ - это действительно программисты на C++ начала 1990-х годов, в значительной степени пишущие классы C++, не много используют дженерики. Более современный подход использует дженерики для создания программного обеспечения вместе таким образом, что больше похоже на динамические языки, но вы все равно получаете проверку типа / производительность в конце. На это немного некрасиво смотреть. Но как только вы преодолеете синтаксис вопросы это действительно довольно приятно. Boost дает вам много инструментов, необходимых для создания материала легко. умные указатели, функции, лямбды, привязки и т. д. Затем есть библиотеки boost, которые используют этот новый способ написания C++ для обеспечения таких вещей, как сеть, регулярное выражение и т. д...

Если вы пишете много циклов for, или объектов функции ручной прокатки, или делаете управление памятью, то вы определенно должны проверить boost out.


BOOST-это коллекция библиотек, заполняющих потребности, общие для многих проектов C++. Как правило, они устанавливают приоритет правильности, повторно используемой, переносимости, производительности во время выполнения и эффективности пространства над удобочитаемостью кода реализации BOOST или иногда времени компиляции. Они, как правило, не охватывают полные функциональные требования высокого уровня (например, рамки приложений) и вместо этого (к счастью) предлагают строительные блоки, которые могут быть более свободно объединены без диктовки или доминирования дизайн приложения.

важные причины для рассмотрения использования BOOST включают:

  • большинство библиотек довольно хорошо протестированы и разработаны: они, как правило, получают разумно обоснованный обзор некоторыми превосходными программистами, по сравнению с людьми с домашними решениями в том же проблемном пространстве и достаточно широко используются для сбора обширной обратной связи в реальном мире
  • оно уже написано, и ваше решение, вероятно, не
  • это довольно портативный (но это зависит от библиотеки)
  • больше людей в сообществе C++ будут иметь преимущество в помощи вам с вашим кодом
  • BOOST часто является испытательной площадкой для введения в стандарт C++, поэтому у вас будет меньше работы по переписыванию кода, чтобы быть совместимым с будущими стандартами без BOOST
  • из-за спроса сообщества поставщики компиляторов с большей вероятностью будут тестировать и реагировать на проблемы корректности с использованием BOOST
  • знакомство с boost библиотеки помогут вам выполнить аналогичную работу над другими проектами, возможно, в других компаниях, где любой код, который вы можете написать сейчас, может быть недоступен для повторного использования

библиотеки описаны в строке или двух здесь:http://www.boost.org/doc/libs/.


потому что стандартная библиотека языка C++ - это не все что полное.


ничего Кевлин Хенниучастие следует принять к сведению.


Boost для C++ вроде как .NET Framework для C#, но, возможно, в меньшем масштабе.


Я использую библиотеку файловой системы немного, и boost:: shared_ptr довольно изящный. Я слышал, он делает и другие вещи.


Boost в основном краткий обзор того, что стандарт станет, кроме того, со всеми рецензиями и использованием, что Boost получает Вы можете быть уверены, что вы получаете довольно много для ваших зависимостей.

однако большинство магазинов не используют Boost, потому что его внешняя зависимость. И на самом деле сокращение внешних зависимостей также очень важно.