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

StackOverflow https://stackoverflow.com/questions/125580

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Повышение используется так широко, потому что:

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

Другие советы

С домашней страницы:

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

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

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

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

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

  • регулярное выражение
  • привязка к функции
  • лямбда - функции
  • модульные тесты
  • умные указатели
  • не подлежащий копированию, необязательный
  • сериализация
  • общие даты
  • портативная файловая система
  • круговые буферы
  • настраиваемые утилиты
  • универсальная библиотека изображений
  • TR1
  • Ветки
  • уБЛАС

и Еще когда вы будете писать код на C ++, взгляните на Повышение.

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

Стимулируйте людей они не лгут:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top