Skip to content

Latest commit

 

History

History
75 lines (57 loc) · 1.94 KB

File metadata and controls

75 lines (57 loc) · 1.94 KB

stop_requested

  • stop_token[meta header]
  • std[meta namespace]
  • stop_token[meta class]
  • function[meta id-type]
  • cpp20[meta cpp]
[[nodiscard]] bool stop_requested() const noexcept;

概要

停止要求が作成されたかどうかを返す。

戻り値

自身が停止状態を所有していて、その停止状態が停止要求を受け取っている場合はtrueを返す。それ以外の場合はfalseを返す。

例外

投げない。

備考

一度stop_requested() == trueとなったstop_tokenは、自身と停止状態を共有するstop_sourceが破棄されてもstop_requested() == trueかつstop_possible() == trueの状態のままになる。

#include <cassert>
#include <stop_token>

int main()
{
  std::stop_source ss1;
  std::stop_source ss2;

  std::stop_token st1 = ss1.get_token();
  std::stop_token st2 = ss2.get_token();
  std::stop_token st3;

  assert(st1.stop_requested() == false);
  assert(st2.stop_requested() == false);
  assert(st3.stop_requested() == false);

  // 停止要求を作成する
  ss1.request_stop();

  assert(st1.stop_requested() == true);

  // stop_token に紐づく stop_source を破棄する
  ss1 = std::stop_source{};

  // 停止状態が停止要求を受け取った場合は、
  // その後で stop_source が破棄されても stop_requested() == true のままになる。
  assert(st1.stop_requested() == true);
}
  • stop_requested()[color ff0000]
  • std::stop_token[link ../stop_token.md]
  • std::stop_source[link ../stop_source.md]
  • request_stop()[link ../stop_source/request_stop.md]
  • get_token()[link ../stop_source/get_token.md]

出力

バージョン

言語

  • C++20

処理系