cpp / latest / thread / future / ~future.html /

std::future<T>::~future

~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; and
  • the current object gives up its reference to its shared state; and
  • these actions will not block for the shared state to become ready, except that it 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. this 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.

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/future/%7Efuture