std::shared_future<T>::shared_future
From cppreference.com
                    
                                        
                    < cpp | thread | shared future
                    
                                                            
                    | shared_future() noexcept; | (1) | (since C++11) | 
| (2) | ||
| shared_future( const shared_future& other ); | (since C++11) (until C++17) | |
| shared_future( const shared_future& other ) noexcept; | (since C++17) | |
| shared_future( std::future<T>&& other ) noexcept; | (3) | (since C++11) | 
| shared_future( shared_future&& other ) noexcept; | (4) | (since C++11) | 
Constructs a new shared_future.
1) Default constructor. Constructs an empty shared future, that doesn't refer to a shared state, that is valid() == false.
2) Constructs a shared future that refers to the same shared state, if any, as 
other.3-4) Transfers the shared state held by 
other to *this. After the construction, other.valid() == false, and this->valid() returns the same value as other.valid() would have returned before the construction.Parameters
| other | - | another future object to initialize with |