Вернемся к этому вопросу через несколько лет.
Продолжая использовать все больше и больше библиотек Boost, я подумал, что обновлю этот вопрос, чтобы дать вескую причину того, почему вы должны использовать Boost, когда описание продукта соответствует желаемой функциональности. Это убедит даже негодяев. Скачайте openSSL, попробуйте сделать клиентское и серверное приложение с ним. Теперь попробуйте сделать это на любой платформе. Затем загрузите и используйте boost :: asio :: ssl для создания того же приложения. Если вы не уверены, что boost - это подходящее место для поиска чистого, хорошо оптимизированного, рецензируемого, кроссплатформенного кода, это простое упражнение преобразит вас.
TL; Dr версия:
По моему мнению, вы не видите, чтобы тонна независимых или малых и средних компаний, занимающихся разработкой, использовала повышение, потому что это массивный и мощный дикий зверь, которого нелегко приручить, и вы в основном сами по себе, пытаясь понять, как использовать это. Документация отсутствует по нескольким причинам (см. Длинную версию), и «сообщество» вокруг проекта либо отсутствует, либо рассеяно, либо неактивно (по сравнению с другими проектами).
Очень длинная версия:
я понимаю, что уже есть принятый ответ, но как человек, который фактически использует повышение почти в каждом проекте, который я делаю, я решил опубликовать ответ.
Я помню, когда я впервые начал копаться в бусте, и, честно говоря, я не имел ни малейшего понятия, что происходит. Повышение не очень хорошо задокументировано. Люди могут не согласиться со мной в этом, я уверен, потому что есть тонны фрагментов кода примера, комментариев и тому подобного, но все это очень холодно и неопределенно, а также трудно ориентироваться.
Также трудно найти место, где вы чувствуете, что нашли «сообщество» вокруг проекта. На самом деле сообщество кажется несуществующим или кочевым. К сожалению, даже их список рассылки контролировался многими сайтами пиявок, что вы можете пройти по этой кроличьей норе, всегда возвращаясь к тому, с чего начали.
Эти два фактора делают обучение использованию библиотек надстройки довольно сложной задачей. Даже если технические аспекты использования надстройки не слишком сложны, это огромный набор библиотек, и его нужно запускать, когда все, что вы вооружены, - это несколько фрагментов кода и разбросанные фрагменты списка рассылки из самых темных уголков Интернета. ... ну, вы поняли.
Я начал работать с надстройкой над версией 1.45, и только сейчас в версии 1.52 / 1.53 я чувствую себя достаточно комфортно, чтобы использовать ее в производстве. Есть так много вещей, к которым нужно привыкнуть и запомнить, даже такие простые вещи, как то, как вы настроили, ускорили и запомнили эту конфигурацию, потому что то, как библиотеки построены и функционируют, может сильно варьироваться в зависимости от ваших предпочтений во время компиляции из-за того, как настраиваемые вещи находятся.
Тем не менее , не заблуждайтесь , как только вы сможете увеличить скорость, вы получите мощное оружие для быстрого создания надежных кроссплатформенных программ. Просто возьмите boost::asio
для примера. Вы можете написать чрезвычайно мощный, масштабируемый и надежный кроссплатформенный асинхронный веб-сервер всего за пару сотен строк. На протяжении многих лет я написал несколько клиентов, серверов, прокси-серверов и т. Д., Используя всего несколько сотен строк кода, каждая из которых еще не сработала, и могу перенести их с платформы на платформу за считанные минуты.
Как уже отмечали другие, крупные компании, как правило, завязывают с унаследованными вещами или любят накатывать свои собственные, что я полностью понимаю. Также есть одна действительно глупая вещь, о которой я слышал и с которой сталкивался, когда ведущие разработки и / или руководители проектов запрещают использовать повышение, потому что оно «слишком большое». Я предполагаю, что они верят, что boost - это одна библиотека, или они никогда не слышали о BCP .
Что касается ПОЧЕМУ я решил использовать повышение
Я бы сказал, что использую его, потому что, как вы подразумеваете в своем вопросе, это «библиотека» C ++. Boost рассматривается в мире C ++ как швейцарский армейский нож вещей, которые в конечном итоге вам понадобится использовать. Таким образом, идея состоит в том, что, если есть необходимость, должна быть высокоэффективная и портативная версия в бусте. Большие компании вносят свой вклад в повышение , очень образованные люди с впечатляющим резюме вносят и поддерживают его , и когда разрабатывается новый стандарт C ++, люди обычно стремятся повысить свой уровень, чтобы увидеть, какие его части должны стать стандартом C ++ в соответствии с ISO.
Поэтому, если мне нужно добавить некоторые функциональные возможности, для которых, вероятно, существует существующая библиотека, первое, на что я буду обращать внимание, это повышение, просто потому, что я довольно уверен в том, что он довольно хорошо оптимизирован, переносим, он будет поддерживаться и поддерживаться для очень долгое время и ошибки будут найдены и устранены. В мире открытого кода эти качества могут быть очень трудно найти.