TGViewer
C++ Moscow C++ Moscow @cppmoscow_info · 448 subscribers
Post #58 492
Корутины и Qt. Библиотека QCoro

Qt появился уже почти 30 лет назад. Хотя фреймворк и сейчас поддерживается и получает крупные обновления как от разработчиков, так и от комьюнити, его событийно-ориентированная система заставляет нас использовать вереницы коллбеков или множество вложенных лямбд и на сегодняшний день выглядит достаточно громоздко в сравнении с другими языками и даже библиотеками C++ (привет, userver).

Библиотека QCoro призвана привнести возможности корутин в событийную систему Qt и позволить избежать описания лишнего кода, одноразовых функций и логики перекладывания данных из метода в метод.

Библиотека не ломает обратную совместимость. Все старые классы, по типу QNetworkManager, QFuture или классов IO-системы полностью совместимы с QCoro. Достаточно лишь заменить QObject::connect с коллбеком на co_await и узреть магию.

При этом библиотека надёжна и признана мировым сообществом. Например, она входит в официальные репозитории (extra) для Manjaro Linux, а значит, проходит несколько этапов проверок прежде, чем попасть в эти репозитории.
  • 🔥 9
More from @cppmoscow_info
  1. Aug 11, 2024#article #original Реализуем эффективный тупль с помощью C++26 Свет видел много любительск…
  2. Jul 14, 2024Интересный пример, когда объявление friend T (где T — шаблонный параметр) имеет смысл: tem…
  3. Jun 2, 2024#обсуждение Вечернее обсуждение. Пост от @eoanermine Кажется, будто C++ идёт не в том напр…
  4. Mar 1, 2024Спасибо всем зарегистрировавшимся, и до скорой встречи! Нам хотелось бы собрать как можно…
  5. Feb 27, 202420 марта: C++ митап в Петербурге и онлайне Нас ждет классический вечерний бесплатный митап…
  6. Feb 27, 2024Пока мы проводим митапы в Москве, наши коллеги из YADRO планируют митап в Санкт–Петербурге…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →