I've been converting some of my Python code into C++ these past few days. For coroutines, this blog post was very helpful to me: https://www.scs.stanford.edu/~dm/blog/c++-coroutines.html . Also, I wholeheartedly agree with this statement in its introduction.
My tutorial and take on C++20 coroutines

What I see in C++ coroutines is a clunky way to implement them, similar to how generators were originally implemented in Python, but with way more boilerplate code required.

What I'm specifically missing is the "yield from" feature that Python has, allowing a coroutine to make a call to another coroutine, which can yield to the original parent. I hacked a #define to kind of do that, but it's ugly. I hope they will allow this soon.