Building a C++ Coroutine by Hand, and Why You Probably Should Not

Lieven De Cock builds three C++20 coroutines from scratch, from the promise type and coroutine handle up to Boost.Asio, and explains why std::generator and library support should do most of this work for you.