Namespaces
Variants
Views
Actions

std::future<T>::~future

From cppreference.com
< cpp‎ | thread‎ | future
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Mutual exclusion
(C++11)
(C++11)  
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Safe Reclamation
(C++26)
(C++26)
Hazard Pointers

Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Memory ordering
Free functions for atomic operations
Free functions for atomic flags
 
 
~future();
(since C++11)

Releases any shared state. This means

  • if the current object holds the last reference to its shared state, the shared state is destroyed;
  • the current object gives up its reference to its shared state;
  • these actions will not block for the shared state to become ready, except that they may block if all of the following are true:
  1. the shared state was created by a call to std::async,
  2. the shared state is not yet ready, and
  3. the current object was the last reference to the shared state.
(since C++14)

In practice, these actions will block only if the task’s launch policy is std::launch::async (see "Effective Modern C++" Item 36), either because that was chosen by the runtime system or because it was specified in the call to std::async.