LINUX.ORG.RU

Вышел Boost 1.66

 ,


1

8

Boost — кроссплатформенный набор библиотек C++ для разных задач.

Новые библиотеки:

  • Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;
  • CallableTraits — интроспекция и модификация callable types, наследник Boost.FunctionTypes;
  • Mp11 — библиотека метапрограммирования на основе C++11.

Из прочих изменений можно отметить:

  • Asio — API изменен в соответствии с Networking TS;
  • Atomic — новые экспериментальные операции fetch_negate, <op>_and_test, bit_test_and_set и другие;
  • Stacktrace — улучшена поддержка MinGW;
  • Thread — новые экспериментальные методы promise: set_value_deferred/set_exception_deferred.

>>> Подробности

Такие библиотеки как boost хорошо обновлять раз в год. Не чаще. Потому, что следом приходится пересобирать весь софт, который использует эту библиотеку. Никакой обратной совместимости в именах *.so файлов библиотеки.

saahriktu ★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 3)
Ответ на: комментарий от evilface

Так и этот 1.1 поддерживает, это же версия HTTP/1. Поддержка исключительно 1.0 была бы записана как HTTP/1.0.

А вообще эта реализация не для приложений, а для библиотек. Beast позиционируется как минимальная библиотека для построения более фичастых, хотя и нужды каких-то простых приложений тоже может удовлетворить.

xaizek ★★★★★ ()

Отличная библиотека. Есть почти всё чего не хватает в stdlibs. Минус - довольно монструозная и тяжелая, поэтому если есть возможность обойтись - стараюсь не пользоваться.

KorWIN ()
Ответ на: комментарий от KorWIN

Минус - довольно монструозная и тяжелая

Всегда интересно что в это вкладывают. Бинарники получаются тяжелее? Или apt-get долго работает?

если есть возможность обойтись - стараюсь не пользоваться

Возможность-то всегда есть, но зачем

anonymous ()
Ответ на: комментарий от anonymous

Всегда интересно что в это вкладывают. Бинарники получаются тяжелее? Или apt-get долго работает?

- монстроузная семантика
- медленно компилируется
- тяжело отлаживается
- невнятная документация
- медленно работает

dinama ()
Ответ на: комментарий от dinama

Монстроузная семантика - не совсем понял, о чём Вы.

Тяжело отлаживается - а зачем дебажить буст? Дебажить stl тоже тяжко

Медленно работает - можно пример? И пример быстрого аналога.

Медленно компилируется - прям весь буст? Или только спириты всякие?

Невнятная документация - не ко всем либам, но соглашусь, пожалуй.

zamazan4ik ★★ ()
Последнее исправление: zamazan4ik (всего исправлений: 1)
Ответ на: комментарий от dinama

невнятная документация

Это фича :D Нельзя пользоваться не приходя в сознание, как поощряют некоторые другие фреймворки.

Пару недель назад напоролся на сюрприз в Asio - программа вдруг стала падать. Долго искал, нашел свою ошибку и хотел зарепортить насчет «невнятной документации», а потом понял что поведение вполне укладывается в то что описано. Просто нет модной вставки «be aware that 1+1=2».

anonymous ()
Ответ на: комментарий от dinama

Ну как бы на всё это подписываешься когда выбираешь C++. Кроме «медленно работает», конечно, здесь хочется уточнений о чем речь. Ведь именно скорость покрывает остальное.

anonymous ()
Ответ на: комментарий от Lifun

Проще всего посмотреть на мой профиль на wiki.

Сейчас у всех проектов есть wiki-страница, куда привязаны участники проекта. Это работает и в обратную сторону - на странице участника видны проекты, в которых он участвует :-)

Pinkbyte ★★★★★ ()
Ответ на: комментарий от anonymous

"Монструозная" это говно типа культей, которое пытается быть лучшим C++ чем сам C++ и тащит с собой всё своё что можно, включая весь скопипащенный stdlib, веб-енжин, раковину и газилион багов сверху, на которые коммерческим вендором традиционно будет хер положен.

d_a ★★★★★ ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;

Boost потихоньку превращается в ACE. Я что-то не уверен, что это хорошо.

gns ★★★★ ()
Ответ на: комментарий от maxis11

Да я знаю. Такое происходило на вполне собираемом одним компилятором при сборке на других компиляторах. Я не знаю мой это лог или нет (но я такое выкладывал), но у меня было аналогично и я бросил попытки собрать этот код.

mittorn ★★★★★ ()
Ответ на: комментарий от Chaser_Andrey

Вот пока что наоборот, своим C++2x поломали совместимость в бусте!

А как разрабатывали этот networking TS - отдельная песня, что стоном разрабов зовется.

anonymous ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;

Редкостная параша, нирикаминдую.

Mp11 — библиотека метапрограммирования на основе C++11.

Только just for fun. За использование в реальных проектах гнать из профессии ссаными тряпками.

Asio — API изменен в соответствии с Networking TS;

Феерическое ненужно для любителей колбечной лапши. Нормальные люди давным-давно обернули $favorite_io_event_library в корутины и живут себе синхронно и беззаботно.

Thread — новые экспериментальные методы promise: set_value_deferred/set_exception_deferred.

Лучше бы наконец научились задавать размер стека потока при создании да сделали человеческую поддержку деструкторов thread-local объектов. И да, «человеческая» — это не «деструктор позовется, если вы создали поток с помощью нашего boost::thread, не совместимого ни с чем другим».

kawaii_neko ★★★ ()
Ответ на: комментарий от Unicode4all

Зачем http2?

Объсните, зачем пихать http2 в сам сервис а не отдать это на откуп инфраструктуре ( реверспрокси, балансеры ) ? Или просто очень нравится дибажить бинарные протоколы?

peacelove ()
Ответ на: Зачем http2? от peacelove

А зачем вообще вставлять http-сервер в C++приложение, а не отдать это на откуп инфраструктуре?

Да, вопрос риторический, но вы же первый начали.

eao197 ★★★★★ ()
Ответ на: комментарий от zamazan4ik

Монстроузная семантика - не совсем понял, о чём Вы.

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


Тяжело отлаживается - а зачем дебажить буст? Дебажить stl тоже тяжко

шаблоны потому-что. stl - намного легче.

Медленно работает - можно пример? И пример быстрого аналога.

все библиотеки, при наличии аналогов на c - работают медленнее.

Медленно компилируется - прям весь буст? Или только спириты всякие?

использование буста замедляет компиляцию в десятки раз. даже boost-test и тот пришлось выпилить, потому-что дико раздражало.

Невнятная документация - не ко всем либам, но соглашусь, пожалуй.

ну вот помножьте это на медитирование на многоэтажными шаблонами. даже с умным автокомплитом и то гиморой.

dinama ()
Ответ на: комментарий от kawaii_neko

Редкостная параша, нирикаминдую

Видимо, есть печальный опыт внедрения.

Нормальные люди давным-давно обернули $favorite_io_event_library в корутины и живут себе синхронно и беззаботно

Что им помешало пользовать asio с корутинами?

anonymous ()
Ответ на: лолшто? от peacelove

А с инфраструктурой приложение как будет связываться?

Да как угодно: shared_memory, pipes, unix domain sockets, ... Причем все это может быть упрятано под капот какого-нибудь высокоуровневого IPC-механизма (вроде RPC).

Ну так ответ будет?

eao197 ★★★★★ ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;

Для обладателей обычного скутера и обычных сигарет, кого nodejs не вштырила, но подход понравился.

ncrmnt ★★★★ ()