• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class
    <stop_token>

    std::stop_token

    namespace std {
      class stop_token;
    }
    

    概要

    stop_tokenクラスは、停止要求が作成されたかどうか、あるいは停止要求が作成されうるかどうかなど、停止状態を問い合わせるためのインターフェースを提供する。

    stop_sourceクラスのget_token()メンバ関数を呼び出すと、そのstop_sourceクラスのオブジェクトと停止状態を共有するstop_tokenクラスのオブジェクトを構築できる。これによって、stop_source側から停止要求を作成したときに、このstop_tokenを通じて停止状態を問い合わせられるようになる。

    また、stop_tokenクラスは以下のクラスでも利用される:

    • stop_callback
      • 停止要求に応じて呼び出されるコールバックを登録する際に、コンストラクタでstop_tokenを受け取る。
    • condition_variable_any
      • 割り込み可能な待機処理を行う際に、wait()メンバ関数でstop_tokenを受け取る。

    メンバ関数

    名前 説明 対応バージョン
    (constructor) コンストラクタ C++20
    (destructor) デストラクタ C++20
    operator= 代入演算子 C++20
    swap 別のstop_tokenと交換する C++20
    stop_requested 停止要求が作成されたかどうかを取得する C++20
    stop_possible 停止要求が作成されうるかどうかを取得する C++20

    非メンバ関数

    名前 説明 対応バージョン
    operator== 等値演算子 C++20
    operator!= 非等値演算子 C++20
    swap 2つのstop_tokenオブジェクトを入れ替える C++20

    #include <cassert>
    #include <stop_token>
    
    int main()
    {
      std::stop_source ss;
      std::stop_token st = ss.get_token();
      assert(st.stop_requested() == false);
    
      ss.request_stop();
    
      assert(st.stop_requested() == true);
    }
    

    出力

    バージョン

    言語

    • C++20

    処理系