std::stop_callback<Callback>::stop_callback
来自 cppreference.cn
< cpp | thread | 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 上请求停止时调用。
只有当 Callback
和 C
满足 constructible_from
的 std::constructible_from<Callback, C> 时,两个构造函数才参与重载解析。如果 Callback
和 C
满足概念但未能满足其语义要求,则行为未定义。
[编辑] 参数
st | - | 一个 std::stop_token 对象,用于注册此 stop_callback 对象 |
cb | - | 如果请求停止时要调用的类型 |
[编辑] 异常
1,2)
noexcept 规范:
通过构造函数初始化将给定回调函数初始化到 noexcept(std::is_nothrow_constructible_v<Callback, C>)
stop_callback
对象时抛出的任何异常。[编辑] 注释
如果对于传入的 std::stop_token,st.stop_requested() == true,则在构造函数返回之前,将在当前线程中调用回调函数。