std::packaged_task<R(Args...)>::operator()
來自 cppreference.com
< cpp | thread | packaged_task
void operator()( ArgTypes... args ); |
(C++11 起) | |
呼叫被儲存的任務,如同透過 INVOKE<R>(f, args...),其中 f 是被儲存的任務。任務的返回值或任何丟擲的異常被儲存於共享狀態中。共享狀態被設為就緒,並且任何等待於此的執行緒均被解除阻塞。
目錄 |
[編輯] 引數
args | - | 呼叫被儲存任務時傳遞的引數 |
[編輯] 返回值
(無)
[編輯] 異常
對於下列錯誤條件丟擲 std::future_error
- 被儲存的任務已被呼叫。錯誤類別設為 promise_already_satisfied。
- *this 無共享狀態。錯誤類別設為 no_state。
[編輯] 示例
本節不完整 原因:無示例 |
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
LWG 2142 | C++11 | 對 operator() 的成功呼叫同步於 對與 *this 共享其共享狀態的 std::future 或 std::shared_future 的任何成員函式的呼叫 |
除共享狀態已提供的保證外 無額外同步保證 (原文:guarantees other than what is already provided by shared state) |
[編輯] 參閱
執行函式,確保僅在當前執行緒退出後結果才就緒 (公開成員函式) |