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

履歴 編集

class template
<stop_token>

std::inplace_stop_callback(C++26)

namespace std {
  template<class CallbackFn>
  class inplace_stop_callback;
}

概要

inplace_stop_callbackクラステンプレートは、停止要求が作成された際に呼び出されるコールバックを表す。

適格要件

テンプレート引数CallbackFninvocableおよびdestructibleを満たすこと。

メンバ関数

名前 説明 対応バージョン
(constructor) コンストラクタ C++26
(destructor) デストラクタ C++26
operator=(const inplace_stop_callback&) = delete; 代入演算子 C++26
operator=(inplace_stop_callback&&) = delete; 代入演算子 C++26

メンバ型

名前 説明 対応バージョン
callback_type CallbackFn C++26

推論補助

名前 説明 対応バージョン
(deduction_guide) クラステンプレートの推論補助 C++26

#include <cassert>
#include <stop_token>
#include <string>

int main()
{
  std::string msg;

  std::inplace_stop_source ss;
  std::inplace_stop_token st = ss.get_token();
  std::inplace_stop_callback cb1(st, [&] { msg += "hello"; });

  assert(msg == "");

  ss.request_stop();

  // 停止要求が作成される前に登録されていたコールバック関数は、
  // 停止要求が作成された際にその中で呼び出される
  assert(msg == "hello");

  std::inplace_stop_callback cb2(st, [&] { msg += " world"; });

  // 停止要求が作成されたあとに登録されたコールバック関数は、
  // std::inplace_stop_callback クラスのコンストラクタの中で即座に呼び出される
  assert(msg == "hello world");
}

出力

バージョン

言語

  • C++26

処理系

関連項目

参照