Class template selfN
hamigaki::coroutines::selfN —
Synopsis
template<typename R, typename T1, typename T2, ..., typename TN>
class selfN {
public:
// queries
R result();
// modifiers
void exit();
boost::tuple<T1,T2, ..., TN> yield(R);
template<typename Coroutine, typename U1, typename U2, ..., typename UM>
boost::tuple<T1,T2, ..., TN> yield_to(Coroutine, U1, U2, ..., UM);
};
Description
selfN
modifiers
-
void exit();
Effects: |
コルーチンの実行を中断し、終了させる。 |
Returns: |
決して戻らない |
Throws: |
exit_exception
|
-
boost::tuple<T1,T2, ..., TN> yield(R r);
Effects: |
コルーチンの実行を一時中断し、呼び出し元にコンテキストを戻す。コルーチンの戻り値はr になる。 |
Returns: |
再度呼び出された際のコルーチンの引数 |
-
template<typename Coroutine, typename U1, typename U2, ..., typename UM>
boost::tuple<T1,T2, ..., TN> yield_to(Coroutine c, U1 a1, U2 a2, ..., UM aM);
Effects: |
コルーチンの実行を一時中断し、コルーチンc にコンテキストを移動させる。コルーチンc の引数はa1, a2, ..., aM になる。 |
Returns: |
再度呼び出された際のコルーチンの引数 |