namespace std {
template<class CallbackFn>
class inplace_stop_callback;
}
概要
inplace_stop_callback
クラステンプレートは、停止要求が作成された際に呼び出されるコールバックを表す。
適格要件
テンプレート引数CallbackFn
がinvocable
および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
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??