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 上請求停止時後續呼叫。
兩個建構函式僅在 Callback
和 C
滿足 std::constructible_from<Callback, C> 的 constructible_from
時才參與過載決議。如果 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,則在建構函式返回之前,將在當前執行緒中呼叫回撥函式。