public member function
<future>

std::promise::set_exception_at_thread_exit

void set_exception_at_thread_exit (exception_ptr p);
Set exception at thread exit
將異常指標 p 儲存在共享狀態中,但不立即使其就緒。相反,它將線上程退出時,在所有執行緒儲存期物件銷燬後自動使其就緒

如果與同一共享狀態關聯的 future 物件正在等待 future::get 呼叫,它將保持阻塞直到執行緒結束。執行緒結束時,它將丟擲由 p 指向的異常物件。

請注意,呼叫此函式已經為共享狀態設定了值,如果在本次呼叫與執行緒結束之間修改該值的任何呼叫都會丟擲具有 promise_already_satisfied 作為錯誤條件future_error

引數

p
一個 exception_ptr 物件。
exception_ptr 是一種用於引用異常物件的智慧指標型別。

返回值



資料競爭

promise 物件被修改。
共享狀態被修改為原子操作(不會導致資料競爭)。

異常安全

基本保證:如果丟擲異常,則 promise 物件處於有效狀態。

此成員函式在以下條件下丟擲異常
exception typeerror condition描述
future_errorfuture_errc::no_state該物件沒有共享狀態(它已被移動賦值
future_errorfuture_errc::promise_already_satisfied共享狀態已儲存值或異常
根據庫實現的不同,此成員函式還可能丟擲異常來報告其他情況。

另見