>>212
複雑っていうけど、元から非同期処理なんか、どう書いたって複雑だろ
>>211はお遊びでワザとコルーチン作りまくってるだけだし
あの程度の事なら本当はこれでいけるわけで
int func_async( int n ){
 if( n == 0 ){ return 0; }
 a_wait() << [&]{ sleep( 10*1000 ); }; //非同期処理
 return n + func_async( n - 1 );
}
int main(){
 a_sync() << [&]{ printf( "%d\n", func_async( 10 ) ); };
 message_loop();
 return 0;
}
別に複雑と言うほどでもないし
非同期処理を同期処理みたいにかけるというだけ
あとはキャンセルと例外安全のためにbarrierの機能を追加しただけ