// Copyright Oliver Kowalke 2014. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include #include #define yield(x) p=x; mctx.resume(); int main() { int n=35; int p=0; boost::context::execution_context mctx( boost::context::execution_context::current() ); boost::context::execution_context ctx( boost::context::fixedsize_stack(), [n,&p,mctx]()mutable{ int a=0; int b=1; while(n-->0){ yield(a); auto next=a+b; a=b; b=next; } }); for(int i=0;i<10;++i){ ctx.resume(); std::cout<