Class template shared_coroutineN
hamigaki::coroutines::shared_coroutineN —
Synopsis
template<typename R, typename T1, typename T2, ..., typename TN>
class shared_coroutineN {
public:
// types
typedef selfN<R, T1, T2, ..., TN> self;
// construct/copy/destruct
shared_coroutineN();
shared_coroutineN(const shared_coroutineN&);
template<typename Functor>
shared_coroutineN(const Functor&, std::ptrdiff_t = -1);
// queries
bool exited() const;
bool empty() const;
// modifiers
void exit();
// invocations
R operator()(T1, T2, ..., TN);
boost::optional<R> operator()(std::nothrow_t, T1, T2, ..., TN);
};
Description
shared_coroutineN
construct/copy/destruct
-
shared_coroutineN();
Effects: |
ファンクタを保持していない空のコルーチンを生成する。 |
Postconditions: |
empty()
|
-
shared_coroutineN(const shared_coroutineN& x);
Effects: |
x とコルーチンを共有する。 |
Postconditions: |
!empty()
|
-
template<typename Functor>
shared_coroutineN(const Functor& f, std::ptrdiff_t stack_size = -1);
Effects: |
スタックサイズがstack_size のコルーチンを生成する。ファンクタf のコピーがコルーチンのエントリポイントに設定される。 |
Postconditions: |
!empty()
|
shared_coroutineN
queries
-
bool exited() const;
Returns: |
コルーチンの保持するファンクタが終了していれば、true |
-
bool empty() const;
Returns: |
コルーチンがコンテキストを保持していない場合、true |
shared_coroutineN
modifiers
-
void exit();
Effects: |
コルーチンの実行を中断し、終了させる。 |
Postconditions: |
exited()
|
shared_coroutineN
invocations
-
R operator()(T1 a1, T2 a2, ..., TN aN);
-
boost::optional<R> operator()(std::nothrow_t, T1 a1, T2 a2, ..., TN aN);