名稱空間
變體
操作

std::stop_callback<Callback>::stop_callback

來自 cppreference.com
 
 
併發支援庫
執行緒
(C++11)
(C++20)
this_thread 名稱空間
(C++11)
(C++11)
(C++11)
協同取消
互斥
通用鎖管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
條件變數
(C++11)
訊號量
門閂和屏障
(C++20)
(C++20)
期值
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
危險指標
原子型別
(C++11)
(C++20)
原子型別的初始化
(C++11)(C++20 中已棄用)
(C++11)(C++20 中已棄用)
記憶體排序
(C++11)(C++26 中已棄用)
原子操作的自由函式
原子標誌的自由函式
 
std::stop_callback
成員函式
stop_callback::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 上請求停止時後續呼叫。

1) 為給定的 st std::stop_token (被複制) 和給定的可呼叫回撥函式 cb 構造一個 stop_callback
2) 為給定的 st std::stop_token (被移動) 和給定的可呼叫回撥函式 cb 構造一個 stop_callback
3,4) stop_callback 既不是 可複製構造 (CopyConstructible) 的,也不是 可移動構造 (MoveConstructible) 的。

兩個建構函式僅在 CallbackC 滿足 std::constructible_from<Callback, C>constructible_from 時才參與過載決議。如果 CallbackC 滿足該概念但未能滿足其語義要求,則行為未定義。

[編輯] 引數

st - 一個 std::stop_token 物件,用於註冊此 stop_callback 物件
cb - 如果請求停止,要呼叫的型別

[編輯] 異常

1,2)
noexcept 規範:  
noexcept(std::is_nothrow_constructible_v<Callback, C>)
將給定的回撥函式構造初始化到 stop_callback 物件中時丟擲的任何異常。

[編輯] 注意

如果對於傳入的 std::stop_tokenst.stop_requested() == true,則在建構函式返回之前,將在當前執行緒中呼叫回撥函式。