cplusplus
.com
教程
參考
文章
論壇
C++
教程
參考
文章
論壇
參考
C 庫
<cassert> (assert.h)
<cctype> (ctype.h)
<cerrno> (errno.h)
C++11
<cfenv> (fenv.h)
<cfloat> (float.h)
C++11
<cinttypes> (inttypes.h)
<ciso646> (iso646.h)
<climits> (limits.h)
<clocale> (locale.h)
<cmath> (math.h)
<csetjmp> (setjmp.h)
<csignal> (signal.h)
<cstdarg> (stdarg.h)
C++11
<cstdbool> (stdbool.h)
<cstddef> (stddef.h)
C++11
<cstdint> (stdint.h)
<cstdio> (stdio.h)
<cstdlib> (stdlib.h)
<cstring> (string.h)
C++11
<ctgmath> (tgmath.h)
<ctime> (time.h)
C++11
<cuchar> (uchar.h)
<cwchar> (wchar.h)
<cwctype> (wctype.h)
容器
C++11
<array>
<deque>
C++11
<forward_list>
<list>
<map>
<queue>
<set>
<stack>
C++11
<unordered_map>
C++11
<unordered_set>
<vector>
輸入/輸出
<fstream>
<iomanip>
<ios>
<iosfwd>
<iostream>
<istream>
<ostream>
<sstream>
<streambuf>
多執行緒
C++11
<atomic>
C++11
<condition_variable>
C++11
<future>
C++11
<mutex>
C++11
<thread>
其他
<algorithm>
<bitset>
C++11
<chrono>
C++11
<codecvt>
<complex>
<exception>
<functional>
C++11
<initializer_list>
<iterator>
<limits>
<locale>
<memory>
<new>
<numeric>
C++11
<random>
C++11
<ratio>
C++11
<regex>
<stdexcept>
<string>
C++11
<system_error>
C++11
<tuple>
C++11
<type_traits>
C++11
<typeindex>
<typeinfo>
<utility>
<valarray>
<future>
類
C++11
future
C++11
future_error
C++11
packaged_task
C++11
promise
C++11
shared_future
列舉類
C++11
future_errc
C++11
future_status
C++11
launch
函式
C++11
async
C++11
future_category
promise
C++11
promise::~promise
C++11
promise::promise
成員函式
C++11
promise::get_future
C++11
promise::operator=
C++11
promise::set_exception
C++11
promise::set_exception_at_thread_exit
C++11
promise::set_value
C++11
promise::set_value_at_thread_exit
C++11
promise::swap
非成員過載
C++11
swap (promise)
非成員特化
C++11
uses_allocator<promise>
參考
<future>
promise
set_exception_at_thread_exit
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 type
error condition
描述
future_error
future_errc::no_state
該物件沒有
共享狀態
(它已被
移動賦值
)
future_error
future_errc::promise_already_satisfied
共享狀態
已儲存值或異常
根據庫實現的不同,此成員函式還可能丟擲異常來報告其他情況。
另見
promise::set_exception
Set exception
(public member function)
promise::set_value_at_thread_exit
Set value at thread exit
(public member function)
future::get
Get value
(public member function)