使ってみました。 Boostのlibs/asio/example/http/server4にあるcoroutine.hppとyield.hppを持ってきます。 まず、非メンバ関数でのyield。 #include <iostream> #include "yield.hpp" int foo(coroutine& coro) { reenter(coro) { yield return 1; yield return 2; } } int main() { coroutine coro; std::cout << foo(coro) << std::endl; std::cout << foo(coro) << std::endl; } 1 2 メンバ関数内でのyield。coroutineクラスを継承してreenterにthisを渡すか: #include <iostream> #inc