CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 25 Jul 2025 17:30:54 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/future/shared_future/get/
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 25 Jul 2025 17:30:55 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"7534-HV4Ek+9T6C/8KniqXM2r4cxPaLM"
Content-Encoding: gzip
Returns a reference to the value stored in the shared state (or throws its exception) when the shared state is ready.
If the shared state is not yet ready (i.e., the provider has not yet set its value or exception), the function blocks the calling thread and waits until it is ready.
Once the shared state is ready, the function unblocks and returns (or throws), but does not release its shared state (unlike future::get), allowing other shared_future objects to also access the stored value (or new accesses by the same object).
All visible side effects are synchronized between the point the provider makes the shared state ready and the return of this function, but note that no synchronization exists among the potential multiple functions returning on this event (in case of multiple shared_future objects were waiting for the same shared state).
The member of the
The lifetime of the referred value extends at least until the last object associated with the shared state releases it or is destroyed.
T is the type of the value in the shared state (i.e., the template parameter of shared_future).
The shared state is accessed as an atomic operation relative to the previous modifying operation by the provider, but not in relation to multiple accesses from shared_future objects.
Calling this member function on a shared_future object that is not valid, produces undefined behavior (although library implementations may detect this and throw future_error with a no_state error condition).
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<future>
classes
-
futureC++11
-
future_errorC++11
-
packaged_taskC++11
-
promiseC++11
-
shared_futureC++11
-
enum classes
-
future_errcC++11
-
future_statusC++11
-
launchC++11
-
functions
-
asyncC++11
-
future_categoryC++11
-
shared_future
-
shared_future::~shared_futureC++11
-
shared_future::shared_futureC++11
member functions
-
shared_future::getC++11
-
shared_future::operator=C++11
-
shared_future::validC++11
-
shared_future::waitC++11
-
shared_future::wait_forC++11
-
shared_future::wait_untilC++11
-
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 |
Get value
If the shared state is not yet ready (i.e., the provider has not yet set its value or exception), the function blocks the calling thread and waits until it is ready.
Once the shared state is ready, the function unblocks and returns (or throws), but does not release its shared state (unlike future::get), allowing other shared_future objects to also access the stored value (or new accesses by the same object).
All visible side effects are synchronized between the point the provider makes the shared state ready and the return of this function, but note that no synchronization exists among the potential multiple functions returning on this event (in case of multiple shared_future objects were waiting for the same shared state).
The member of the
void
specialization (3) does not return any value, but still waits for the shared state to become ready before returning/throwing.Parameters
noneReturn value
A reference to the value stored in the shared state by its provider.The lifetime of the referred value extends at least until the last object associated with the shared state releases it or is destroyed.
T is the type of the value in the shared state (i.e., the template parameter of shared_future).
Data races
The shared_future object is accessed.The shared state is accessed as an atomic operation relative to the previous modifying operation by the provider, but not in relation to multiple accesses from shared_future objects.
Exception safety
The function throws the exception stored in the shared state when the provider makes it ready by setting it to an exception. Note that in this case, a strong guarantee is offered, with the shared_future object remaining unchanged.Calling this member function on a shared_future object that is not valid, produces undefined behavior (although library implementations may detect this and throw future_error with a no_state error condition).
See also
- shared_future::wait
- Wait for ready (public member function)
- shared_future::wait_for
- Wait for ready during time span (public member function)
- shared_future::wait_until
- Wait for ready until time point (public member function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us