coro/cororange.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 "generator.hpp"  // for Generator<>

Generator<int> coro(int max)
{
  std::cout << "CORO " << max << " start\n";

  for (int val = 1; val <= max; ++val) {
    // print next value:
    std::cout << "CORO " << val << '/' << max << '\n';

    // yield next value:
    co_yield val;                       // SUSPEND with value
  }

  std::cout << "CORO " << max << " end\n";
}