hamigaki.png

前のページ 上に戻る ホーム 次のページ

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

  1. shared_coroutineN();
    Effects: ファンクタを保持していない空のコルーチンを生成する。
    Postconditions: empty()
  2. shared_coroutineN(const shared_coroutineN& x);
    Effects: xとコルーチンを共有する。
    Postconditions: !empty()
  3. template<typename Functor> 
      shared_coroutineN(const Functor& f, std::ptrdiff_t stack_size = -1);
    Effects: スタックサイズがstack_sizeのコルーチンを生成する。ファンクタfのコピーがコルーチンのエントリポイントに設定される。
    Postconditions: !empty()

shared_coroutineN queries

  1. bool exited() const;
    Returns: コルーチンの保持するファンクタが終了していれば、true
  2. bool empty() const;
    Returns: コルーチンがコンテキストを保持していない場合、true

shared_coroutineN modifiers

  1. void exit();
    Effects: コルーチンの実行を中断し、終了させる。
    Postconditions: exited()

shared_coroutineN invocations

  1. R operator()(T1 a1, T2 a2, ..., TN aN);
  2. boost::optional<R> operator()(std::nothrow_t, T1 a1, T2 a2, ..., TN aN);
製作著作 © 2006, 2007 Takeshi Mouri

前のページ 上に戻る ホーム 次のページ