The following code example is taken from the book
C++20 - The Complete Guide
by Nicolai M. Josuttis,
Leanpub, 2021
The code is licensed under a
Creative Commons Attribution 4.0 International License.
// raw code
#include <iostream>
#include <coroutine> // for \Tstd::suspend_always{}
#include "corotask.hpp" // for CoroTask
CoroTask coro(const int& max)
{
std::cout << " CORO " << max << " start\n"; // OOPS: value of max still valid?
for (int val = 1; val <= max; ++val) { // OOPS: value of max still valid?
std::cout << " CORO " << val << '/' << max << '\n';
co_await std::suspend_always{}; // SUSPEND
}
std::cout << " CORO " << max << " end\n"; // OOPS: value of max still valid?
}