std::stop_callback<Callback>::stop_callback
From cppreference.com
< cpp | thread | 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で停止が要求された場合に呼び出されるようにします。
両方のコンストラクタは、CallbackとCがconstructible_fromの要件(std::constructible_from<Callback, C>)を満たす場合にのみ、オーバーロード解決に参加します。CallbackとCがコンセプトを満たすが、その意味論的要件を満たさない場合、動作は未定義です。
[編集] 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の場合、コンストラクタが戻る前に、コールバック関数が現在のスレッドで呼び出されます。