These are some (largely) independent tests with coroutines for the task scheduling studies in Work Package 1.7.
This project isn't intended as a coroutine support library. If you're looking for a fully-fledged coroutine library, consider using cppcoro, libcoro or concurrencpp. For composing asynchronous operations across libraries, consider using either std::execution (senders/receivers, with reference implementation Nvidia/stdexec or bemanproject/execution) or IoAwaitables protocol (p4003, with reference implementation Boost.Capy).
The project requires a C++20 compiler with coroutine support.
To build the project run:
cmake --workflow --preset 20Building the examples using std::generator or beman.task requires C++23 standard:
cmake --workflow --preset 23Then run the examples, for instance:
./build/examples/generatorTo make experimentation easier, a skeleton coroutine is provided that includes most of the boilerplate code and can be copied and completed with your own implementation.