Understanding C++ coroutines by example
Generators (Part 1 of 2)
Coroutines are a powerful tool added to C++20. There are no out-of-the-box facilities in the standard library that are user friendly and immediately usable, although there are plenty of libraries out there already providing such primitives.
Also there are now best practices regarding usage of coroutines in C++ that emerged while people were learning them, and that programmers should know about.
This time we will concentrate on the generators part of the coroutines.
We'll get up to speed with how coroutines work under the hood, and then learn about the co_yield
keyword, and how simple generators and asynchronous generators conceptually work.
Note: this session is part 2 of a series of talks. They cover separate aspects of coroutines and are designed to be mostly independent. You don't have to watch part 1 in order to watch this session (though you would benefit from watching both, if you want to, and you can watch them in any order). You can watch part 1 here: youtu.be/tj0URCY_A1s
Pavel Novikov
Got an engineering degree in missilery from BMSTU (Moscow).
Loves C++ and knows how to cook it.
Likes metaprogramming, multithreading and asynchronous programming, coroutine adoption enthusiast.