Boost.Coroutine
Coroutines in C++
C++ Coroutines: Understanding the promise type | Asymmetric Transfer