Namespaces
Variants

std::stop_callback<Callback>:: stop_callback

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
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 std::stop_token (复制构造)构造一个 stop_callback ,并附带给定的可调用回调函数 cb
2) 为给定的 st std::stop_token (已移动)构造一个 stop_callback ,并附带给定的可调用回调函数 cb
3,4) stop_callback 既非 可复制构造 亦非 可移动构造

仅当 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 ,则回调函数会在构造函数返回前于当前线程中调用。