std::future<T>::~future
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | ~future(); | (since C++11) | |
Releases any shared state. This means
- if the return object or provider holds the last reference to its shared state, the shared state is destroyed; and
- the return object or provider gives up its reference to its shared state; and
| 
 
 | (since C++14) |