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

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

112 голосов | спросил jdt141 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 09:35:23 +0400 2008, 09:35:23

11 ответов


0

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

  • Это открытый исходный код и рецензированный.
  • Он предоставляет широкий спектр независимых от платформы функций, которые пропустила STL.
  • Это дополнение к STL, а не замена.
  • Многие разработчики Boost входят в стандартный комитет C ++. Фактически, многие части Boost считаются включенными в следующую стандартную библиотеку C ++.
  • Это хорошо документировано.
  • Его лицензия позволяет включать его в проекты с открытым и закрытым исходным кодом.
  • Его функции не являются обычно зависимыми друг от друга, поэтому вы можете связать только те части, которые вам нужны. [ комментарий Люка Эрмитта ]
ответил blackwing 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 09:48:59 +0400 2008, 09:48:59
0

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

  

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

     

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

     

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

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

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

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

и еще , когда вы пишете код на C ++, взгляните на Boost .

ответил Sébastien RoccaSerra 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 11:54:57 +0400 2008, 11:54:57
0

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

Надежные люди не лгут:

  

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

     

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

     

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

     

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

ответил Vinko Vrsalovic 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 09:43:08 +0400 2008, 09:43:08
0

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

ответил 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 10:59:36 +0400 2008, 10:59:36
0

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

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

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

ответил Keith Nicholas 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 10:39:16 +0400 2008, 10:39:16
0

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

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

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

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

ответил Tony Delroy 21 Jam1000000amFri, 21 Jan 2011 08:02:48 +030011 2011, 08:02:48
0

Потому что стандартная библиотека C ++ не так уж и завершена .

ответил Hans Sjunnesson 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 09:38:38 +0400 2008, 09:38:38
0

Все, что связано с Кевлином Хенни , следует принять примечание.

ответил Umber Ferrule 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 11:46:15 +0400 2008, 11:46:15
0

Повышение до C ++ похоже на .NET Framework для C #, но, возможно, в меньшем масштабе.

ответил macbirdie 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 10:56:22 +0400 2008, 10:56:22
0

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

ответил Terry G Lorber 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 09:37:10 +0400 2008, 09:37:10
0

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

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

ответил Robert Gould 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2008 10:17:43 +0400 2008, 10:17:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132