The co_yield Keyword
Understand the use of the 'co_yield' keyword in C++20.
We'll cover the following
Thanks to co_yield
you can implement a generator generating an infinite data stream from which you can successively query values. The return type of the generator
generator<int> generatorForNumbers(int begin, int inc= 1)
is generator<int>
, where generator internally holds a special promise p
such that a call co_yield i
is equivalent to a call co_await p.yield_value(i)
. Statement co_yield i
can be called an arbitrary number of times. Immediately after each call, the execution of the coroutine is suspended.
An infinite data stream
The following program produces an infinite data stream. The coroutine getNext
uses co_yield
to create a data stream that starts
at the start and gives on request the next value, incremented by step
.
Get hands-on with 1400+ tech skills courses.