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:
|
再度呼び出された際のコルーチンの引数 |