std::future<T>::operator= (3) - Linux Man Pages
future& operator=( future&& other ) noexcept; (1) (since C++11)
future& operator=( const future& other ) = delete; (2) (since C++11)
Assigns the contents of another future object.
1) Releases any shared state and move-assigns the contents of other to *this. After the assignment, other.valid() == false and this->valid() will yield the same value as other.valid() before the assignment.
2) std::future is not CopyAssignable.
other - a std::future that will transfer state to *this