std::stop_callback<Callback>::stop_callback
来自cppreference.com
< cpp | thread | stop callback
并发支持库
|
|
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
。两个构造函数仅若 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
对象中抛出的异常。
注解
若对传入的 std::stop_token 为 st.stop_requested() == true ,则在构造函数返回前于当前线程调用回调函数。