std::future::~future(3)

NAME
std::future::~future - std::future::~future

Synopsis
   ~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:
                        (since C++14)
        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.
   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.