名前空間
変種
操作

std::stop_callback<Callback>::stop_callback

From cppreference.com
 
 
並行性サポートライブラリ
スレッド
(C++11)
(C++20)
this_thread 名前空間
(C++11)
(C++11)
(C++11)
協調的なキャンセル
排他制御
(C++11)
汎用ロック管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件変数
(C++11)
セマフォ
ラッチとバリア
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
安全なメモリ解放 (Safe Reclamation)
(C++26)
ハザードポインタ
アトミック型
(C++11)
(C++20)
アトミック型の初期化
(C++11)(C++20で非推奨)
(C++11)(C++20で非推奨)
メモリオーダー
(C++11)(C++26で非推奨)
アトミック操作のためのフリー関数
アトミックフラグのためのフリー関数
 
std::stop_callback
メンバ関数
stop_callback::stop_callback
推論補助
 
template< class C >
explicit stop_callback( const std::stop_token& st, C&& cb ) noexcept(/*下記参照*/);
(1) (C++20以降)
template< class C >
explicit stop_callback( std::stop_token&& st, C&& cb ) noexcept(/*下記参照*/);
(2) (C++20以降)
stop_callback( const stop_callback& ) = delete;
(3) (C++20以降)
stop_callback( stop_callback&& ) = delete;
(4) (C++20以降)

新しいstop_callbackオブジェクトを構築します。指定されたstd::stop_tokenに関連付けられたstop-stateに、コールバック関数cbを保存して登録し、後で関連するstd::stop_sourceで停止が要求された場合に呼び出されるようにします。

1) 指定されたst std::stop_token(コピー)と、指定された呼び出し可能なコールバック関数cbに対してstop_callbackを構築します。
2) 指定されたst std::stop_token(ムーブ)と、指定された呼び出し可能なコールバック関数cbに対してstop_callbackを構築します。
3,4) stop_callbackは、CopyConstructibleでもMoveConstructibleでもありません。

両方のコンストラクタは、CallbackCconstructible_fromの要件(std::constructible_from<Callback, C>)を満たす場合にのみ、オーバーロード解決に参加します。CallbackCがコンセプトを満たすが、その意味論的要件を満たさない場合、動作は未定義です。

[編集] Parameters

st - このstop_callbackオブジェクトを登録するstd::stop_tokenオブジェクト
cb - 停止が要求された場合に呼び出す型

[編集] Exceptions

1,2)
noexcept 指定:  
noexcept(std::is_nothrow_constructible_v<Callback, C>)
指定されたコールバックをstop_callbackオブジェクトにコンストラクタ初期化する際にスローされる例外。

[編集] Notes

渡されたstd::stop_tokenに対してst.stop_requested() == trueの場合、コンストラクタが戻る前に、コールバック関数が現在のスレッドで呼び出されます。

English 日本語 中文(简体) 中文(繁體)