Pure C++20 coroutine example demonstrating how one coroutine can yield from another.
$ g++ -v
g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
$ g++ --std=c++20 -fcoroutines -g example.cpp
$ ./a.out
main_counter yields 0
main[0] =>0
main_counter yields 1