std::stop_callback<Callback>::stop_callback
来自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
对象,保存并注册 cb 回调函数到给定的 std::stop_token 关联的停止状态中,以于之后在关联的 std::stop_source 的关联停止状态上请求停止时调用。
1) 对给定的 st,给定可调用回调函数 cb 构造(复制)
stop_callback
。2) 对给定的 st,给定可调用回调函数 cb 构造(移动)
stop_callback
。两个构造函数仅若 Callback
与 C
满足 std::constructible_from<Callback, C> 的 constructible_from
才参与重载决议。若 Callback
与 C
满足概念但不满足其语义要求,则行为未定义。
参数
st | - | 用于注册此 stop_callback 对象的 std::stop_token 对象
|
cb | - | 请求停止时调用的类型 |
异常
1,2)
noexcept 说明:
初始化给定的回调到 noexcept(std::is_nothrow_constructible_v<Callback, C>)
stop_callback
对象中的构造函数所抛出的任何异常。注解
若 st.stop_requested() == true 对传入的 std::stop_token 成立,则在构造函数返回前于当前线程调用回调函数。