CARVIEW |
Select Language
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 24 Jul 2025 07:46:28 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"814b-Rcg8Yfw8Kx9fVEEFHFT2HRTPdNk"
Content-Encoding: gzip
A promise is an object that can store a value of type T to be retrieved by a future object (possibly in another thread), offering a synchronization point.
On construction, promise objects are associated to a new shared state on which they can store either a value of type T or an exception derived from std::exception.
This shared state can be associated to a future object by calling member get_future. After the call, both objects share the same shared state:
- The promise object is the asynchronous provider and is expected to set a value for the shared state at some point.
- The future object is an asynchronous return object that can retrieve the value of the shared state, waiting for it to be ready, if necessary.
The lifetime of the shared state lasts at least until the last object with which it is associated releases it or is destroyed. Therefore it can survive the promise object that obtained it in the first place if associated also to a future.
They operate in the same way as the unspecialized template, except for the argument their set_value and set_value_at_thread_exit member functions take.
Output:
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
-
promise
-
promise::~promiseC++11
-
promise::promiseC++11
member functions
-
promise::get_futureC++11
-
promise::operator=C++11
-
promise::set_exceptionC++11
-
promise::set_exception_at_thread_exitC++11
-
promise::set_valueC++11
-
promise::set_value_at_thread_exitC++11
-
promise::swapC++11
-
non-member overloads
-
swap (promise)C++11
-
non-member specializations
-
uses_allocator<promise>C++11
-
class template
<future>
std::promise
template <class T> promise;template <class R&> promise<R&>; // specialization : T is a reference type (R&)template <> promise<void>; // specialization : T is void
Promise
On construction, promise objects are associated to a new shared state on which they can store either a value of type T or an exception derived from std::exception.
This shared state can be associated to a future object by calling member get_future. After the call, both objects share the same shared state:
- The promise object is the asynchronous provider and is expected to set a value for the shared state at some point.
- The future object is an asynchronous return object that can retrieve the value of the shared state, waiting for it to be ready, if necessary.
The lifetime of the shared state lasts at least until the last object with which it is associated releases it or is destroyed. Therefore it can survive the promise object that obtained it in the first place if associated also to a future.
Member functions
- (constructor)
- Construct promise (public member function)
- (destructor)
- Destroy promise (public member function)
- operator=
- Move-assign promise (public member function)
- get_future
- Get future (public member function)
- set_value
- Set value (public member function)
- set_exception
- Set exception (public member function)
- set_value_at_thread_exit
- Set value at thread exit (public member function)
- set_exception_at_thread_exit
- Set exception at thread exit (public member function)
- swap
- Swap shared states (public member function)
Non-member function overloads
- swap (promise)
- Swap promises (function template)
Non-member class specializations
- uses_allocator<promise>
- Uses allocator for promise (class template)
Template specializations
Two specific promise specializations are declared in <future>:
|
|
Example
|
|
Output:
value: 10 |
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