std::stop_callback
| ヘッダ <stop_token> で定義
|
||
template< class Callback > class stop_callback; |
(C++20以上) | |
stop_callback クラステンプレートは紐付いた std::stop_token に対するコールバック関数を登録する RAII オブジェクト型を提供します。 コールバック関数は紐付いた std::stop_source が停止を要求されたときに呼ばれます。
stop_callback のコンストラクタを通して登録されたコールバック関数は、 stop_callback の紐付いた std::stop_token の std::stop_source に対して request_stop() を呼んだのと同じスレッドで、またはコンストラクタの登録より前にすでに停止が要求されていた場合は stop_callback を構築したスレッドで呼ばれます。
同じ std::stop_token に対して複数の stop_callback を、同じスレッドでまたは異なるスレッドで並行的に、作成できます。 それらが実行される順序については何の保証もありませんが、それらは同期的に呼ばれます (すでに説明したように、 std::stop_token に対してすでに停止が要求された後で構築された stop_callback については除きます)。
コールバックの呼び出しが例外で終了した場合は std::terminate が呼ばれます。
std::stop_callback は CopyConstructible でも CopyAssignable でも MoveConstructible でも MoveAssignable でもありません。
テンプレート引数 Callback の型は invocable かつ destructible でなければなりません。 あらゆる戻り値は無視されます。
メンバ型
| 型 | 定義 |
callback_type
|
Callback
|
メンバ関数
| 新しい stop_callback オブジェクトを構築します (パブリックメンバ関数) | |
| stop_callback オブジェクトを破棄します (パブリックメンバ関数) | |
operator= [削除] |
stop_callback は代入可能ではありません (パブリックメンバ関数) |
推定ガイド
例
| This section is incomplete Reason: no example |