Asynchronous programming in C++ is not an easy task. There are various async models and corresponding libraries that facilitate these tasks, and it seems that it's becoming easier. With C++20 coroutines, we got new possibilities, but standard library support for coroutines is virtually nonexistent. Also, having only C++ coroutines in a toolbox is like having only raw pointers or std::thread, i.e., low-level primitives, which cannot be enough for highly composable and scalable APIs. There are a lot of libraries for async tasks implemented on top of coroutines, but there's still an open question - which one to use?
Aside from coroutines, Senders/Receivers emerged as a quite promising model for async computations and hopefully, we'll get std::execution (P2300) in C++26.
In this talk, I'll present Sender/Receiver concepts, various examples from stdexec, NVIDIA's implementation of std::execution proposal and I'll shed some light on how Sender/Receiver model interacts with C++ coroutines.
👤 Speaker | Goran Aranđelović |
🕕 Date & Time | 29th of May (Wednesday), 6pm |
📍 Location | Beograđanka, Vidikovac, 22nd floor |
🏢 Address | Masarikova 5 |
💻 Online | https://cppserbia.com/meet |
See you!