public member function
<future>

std::shared_future::get

generic template (1)
const T& get() const;
reference specialization (2)
R& shared_future<R&>::get() const;     // when T is a reference type (R&)
void specialization (3)
void shared_future<void>::get() const; // when T is void
獲取值
當*共享狀態*就緒時,返回對儲存在*共享狀態*中的值(或其異常)的引用。

如果*共享狀態*尚未就緒(即提供者尚未設定其值或異常),則函式會阻塞呼叫執行緒,並等待其就緒。

一旦*共享狀態*就緒,函式將解除阻塞並返回(或丟擲),但不會釋放其*共享狀態*(與future::get不同),允許其他shared_future物件也訪問儲存的值(或同一物件的新訪問)。

所有可見的副作用都在提供者使*共享狀態*就緒的那一點和此函式返回之間同步,但請注意,在多個物件因同一事件等待*共享狀態*的情況下,這些物件之間不存在同步。

void特化(3)的成員不返回值,但仍然等待*共享狀態*就緒後才返回/丟擲。

引數



返回值

對其由提供者儲存在*共享狀態*中的值的引用。
引用的值的生命週期至少延長到與*共享狀態*關聯的最後一個物件釋放它或被銷燬為止。
T是*共享狀態*中值的型別(即shared_future的模板引數)。

資料競爭

shared_future 物件被訪問。
相對於提供者的前一個修改操作,*共享狀態*被視為原子操作進行訪問,但相對於來自shared_future物件的多個訪問則不是。

異常安全

呼叫此成員函式會丟擲由提供者將其設定為異常而就緒的*共享狀態*中儲存的異常。請注意,在這種情況下,提供的是*強保證*,shared_future物件保持不變。

對非*有效*的shared_future物件呼叫此成員函式,會產生*未定義行為*(儘管庫實現可能會檢測到這一點並丟擲帶有*no_state*錯誤條件的future_error)。

另見