coro/cororef.hpp

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. Creative Commons 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?
}