According to the standard, an implementation can avoid the
heap-allocation, if
- the lifetime of the coroutine is strictly within the lifetime of the
caller
- the size of coroutine state can be determined at compile time
Looks like this optimization is not yet available because new/delete-ops
are required.
Is there any work on this topic?
Thanks!
Wilhelm
On 21.09.22 15:38, Wilhelm Meier wrote:
I tried to use coroutines with avr-gcc (13.0.0) for the AVR target. I
managed to include the coroutine-header and to write a very simple
generator using the example from cppreference.
It compiles well, but then I get undefined symbols:
1) new and delete operator-functions
2) f(f()::f().Frame*)
Therefore two question arise here:
a) is it possible to use coroutines without head-allocation? E.g. define
some global storage for the state of the coroutine?
b) if a) can be fullfilled, what is 2) supposed to do?
Thanks for any hints,
Wilhelm