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

履歴 編集

function
<stop_token>

std::stop_token::stop_requested(C++20)

[[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);
}

出力

バージョン

言語

  • C++20

処理系