Size: a a a

Конференция C++ Russia

2020 April 17

*

*cyberzx in Конференция C++ Russia
короче понял его мысль. он не про использование корутин, а про обвязку для них
источник

*

*cyberzx in Конференция C++ Russia
Alexander Zaitsev
а вы проверяли это утверждение на конкретно Boost.SmartPointers с помощью BCP?
что такое BCP? я проверял утверждение на конкретных проектах, когда тащат ради какой-то мелкой фигни, а по факту компилируется весь буст и время сборки проекта увеличивается в разы
источник

AZ

Alexander Zaitsev in Конференция C++ Russia
*cyberzx
что такое BCP? я проверял утверждение на конкретных проектах, когда тащат ради какой-то мелкой фигни, а по факту компилируется весь буст и время сборки проекта увеличивается в разы
BCP - утилита такая для извлечения частей буста во что-то отдельное. Наглядно показывает, какие части библиотеке точно нужны.

Не вижу проблемы во времени компиляции. Собирается буст ведь не каждый раз всё равно :)
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
*cyberzx
короче понял его мысль. он не про использование корутин, а про обвязку для них
Он про то, что корутины напрямую использовать должны не только лишь все подряд, мало кто должен их использовать. В основном те, кто пишут библиотечки и базовые компоненты продукта. Остальные работают уже с этими компонентами и библиотеками и не видят, что под капотом.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Vladimir Krivopalov
Он про то, что корутины напрямую использовать должны не только лишь все подряд, мало кто должен их использовать. В основном те, кто пишут библиотечки и базовые компоненты продукта. Остальные работают уже с этими компонентами и библиотеками и не видят, что под капотом.
а почему вот в Го видят, а в плюсах внезапно не видят?
источник

*

*cyberzx in Конференция C++ Russia
Vladimir Krivopalov
Он про то, что корутины напрямую использовать должны не только лишь все подряд, мало кто должен их использовать. В основном те, кто пишут библиотечки и базовые компоненты продукта. Остальные работают уже с этими компонентами и библиотеками и не видят, что под капотом.
Он говорит, что потратил весь день на написания фигни, котороя собирает результаты со всех корутин. И резюмировал: не надо писать свои sync_wait_all. Пусть это напишут в либах.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
да-да. корутины есть, а каналов нет
источник

*

*cyberzx in Конференция C++ Russia
Vladimir Krivopalov
Он про то, что корутины напрямую использовать должны не только лишь все подряд, мало кто должен их использовать. В основном те, кто пишут библиотечки и базовые компоненты продукта. Остальные работают уже с этими компонентами и библиотеками и не видят, что под капотом.
Да это нонсенс. Вот мой пример. Я пишу микросервис, который обрабатывает запросы и в обработчике шлёт последовательно запросы другим сервисам. Как это сделать на корутинах, но не используя их?
источник

*

*cyberzx in Конференция C++ Russia
Сейчас у меня колбек в колбеке в колбеке вызывает другой колбек. Хочется уже выбраться из этого ада
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
*cyberzx
Да это нонсенс. Вот мой пример. Я пишу микросервис, который обрабатывает запросы и в обработчике шлёт последовательно запросы другим сервисам. Как это сделать на корутинах, но не используя их?
А корутины там для чего? Для того, чтобы запускать асинхронные операции и не превращать код в лесенку из коллбеков?
источник

*

*cyberzx in Конференция C++ Russia
Да. Что бы ассинхронный код писать в синхронном стиле
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Тогда как раз абстракции типа Task из cppcoro тут и должны пригодиться.
источник

*

*cyberzx in Конференция C++ Russia
Как на гошечке
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
*cyberzx
Как на гошечке
Я очень слабо знаком с Go, так что не могу сравнить. Но по описанию это похоже как раз на те примитивы, которые есть в cppcoro у Lewis Baker (Task, SharedTask, Generator, etc).
источник

AV

Alexey Veselovsky in Конференция C++ Russia
по описанию это похоже на userver 🙂
источник

AV

Alexey Veselovsky in Конференция C++ Russia
где используются буст корутины2
источник

*

*cyberzx in Конференция C++ Russia
Vladimir Krivopalov
Я очень слабо знаком с Go, так что не могу сравнить. Но по описанию это похоже как раз на те примитивы, которые есть в cppcoro у Lewis Baker (Task, SharedTask, Generator, etc).
Ну я смотрел cppcoro. Там всё равно надо использовать co_await. То есть использовать корутины. А этих генераторов нет даже в стандартной библиотеке
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
*cyberzx
Ну я смотрел cppcoro. Там всё равно надо использовать co_await. То есть использовать корутины. А этих генераторов нет даже в стандартной библиотеке
В этом и суть моих претензий к текущим корутинам :) Я там выше как раз эти два пункта написал - что нет в стандартной библиотеке и что co_await всё равно торчит, даже если не нужно возиться с тем, что под капотом.
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
От co_await в пользовательском коде всё равно никуда не деться, раз типы Awaitable.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
стеклес действительно не закопать никак - оно будет торчать наружу всегда. стеклес - дно
источник