std::stop_callback<Callback>::stop_callback

 
 
线程支持库
线程
(C++11)
(C++20)
(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++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
std::stop_callback
成员函数
stop_callback::stop_callback
推导指引
 
template<class C>
explicit stop_callback( const std::stop_token& st, C&& cb ) noexcept(/*see below*/);
(1) (C++20 起)
template<class C>
explicit stop_callback( std::stop_token&& st, C&& cb ) noexcept(/*see below*/);
(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

两个构造函数仅若 CallbackC 满足 std::constructible_from<Callback, C>constructible_from 才参与重载决议。若 CallbackC 满足概念但不满足其语义要求,则行为未定义。

参数

st - 用于注册此 stop_callback 对象 std::stop_token 的对象
cb - 若请求停止则调用的函数类型

异常

1-2)
noexcept 规定:  
noexcept(std::is_nothrow_constructible_v<Callback, C>)
任何构造函数初始化给定的回调到 stop_callback 对象中抛出的异常。

注解

若对传入的 std::stop_tokenst.stop_requested() == true ,则在构造函数返回前于当前线程调用回调函数。