lang:cpp:coroutine
Ceci est une ancienne révision du document !
co_await
#include <iostream> #include <experimental/generator> std::experimental::generator<int> loop(int iterations) { for (int i = 0; i < iterations; i++) { co_yield i; } } int main() { for (int i : loop(100)) { std::cout << i << std::endl; } }
co_return et co_await
#include <future> #include <iostream> std::future<void> t() { return std::async([]() { std::cout << "I" << std::endl; }); } std::future<void> foobar() { std::cout << " First call !\n"; co_await t(); std::cout << " Still first call !\n"; co_await t(); std::cout << " Only after resumed !\n"; } void tt() { auto ttt = foobar(); for (int i = 0; i < 10; i ++) std::cout << i << std::endl; ttt.wait(); } int main() { tt(); }
lang/cpp/coroutine.1573813270.txt.gz · Dernière modification : 2019/11/15 11:21 de root