CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Tue, 22 Jul 2025 19:15:13 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/future/future/get/
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 22 Jul 2025 19:15:14 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"791c-y1cbPbHqlw9mkidnwfjRYoYGwzk"
Content-Encoding: gzip
Returns 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) releasing its shared state. This makes the future object no longer valid: this member function shall be called once at most for every future shared state.
All visible side effects are synchronized between the point the provider makes the shared state ready and the return of this function.
The member of the
For references (2), a reference to the value stored in the shared state.
For void futures (3), nothing.
Possible output:
The shared state is accessed as an atomic operation (causing no data races).
Calling this member function on a 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
-
future
-
future::~futureC++11
-
future::futureC++11
member functions
-
future::getC++11
-
future::operator=C++11
-
future::shareC++11
-
future::validC++11
-
future::waitC++11
-
future::wait_forC++11
-
future::wait_untilC++11
-
public member function
<future>
std::future::get
generic template (1) | T get(); |
---|---|
reference specialization (2) | R& future<R&>::get(); // when T is a reference type (R&) |
void specialization (3) | void future<void>::get(); // 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) releasing its shared state. This makes the future object no longer valid: this member function shall be called once at most for every future shared state.
All visible side effects are synchronized between the point the provider makes the shared state ready and the return of this function.
The member of the
void
specialization (3) does not return any value, but still waits for the shared state to become ready and releases it.Parameters
noneReturn value
Generally (1),std::move(x)
, where x is the value stored in the shared state.For references (2), a reference to the value stored in the shared state.
For void futures (3), nothing.
Example
|
|
Possible output:
Please, enter an integer value: 101 You entered: 101 |
Data races
The future object is modified.The shared state is accessed as an atomic operation (causing no data races).
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 basic guarantee is offered, with the future object being modified to no longer be a valid future (which is itself a valid state for object of this type, despite its name).Calling this member function on a 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
- future::wait
- Wait for ready (public member function)
- future::wait_for
- Wait for ready during time span (public member function)
- 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