Каковы преимущества использования библиотек 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
потому что они добавляют много недостающих вещей в стандартную библиотеку, поэтому некоторые из них включаются в стандарт.
стимулировать людей не вру:
Почему организация должна использовать 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/.
Я использую библиотеку файловой системы немного, и boost:: shared_ptr довольно изящный. Я слышал, он делает и другие вещи.
Boost в основном краткий обзор того, что стандарт станет, кроме того, со всеми рецензиями и использованием, что Boost получает Вы можете быть уверены, что вы получаете довольно много для ваших зависимостей.
однако большинство магазинов не используют Boost, потому что его внешняя зависимость. И на самом деле сокращение внешних зависимостей также очень важно.