This is a tale of many approaches to asynchronous programming in C++, spanning the past 20 years of my C++ experience.
It starts with code much inspired by C-code to do I/O, touches the reactor pattern and some C++ libraries that implement it, briefly brings multi-threading into the mix, to later introduce Networking TS (ASIO / C++23?) and also coroutines (C++20, or Boost). The aim is an overview and insights to help find the “best” way to formulate asynchronous algorithms in C++.