Returns a future object associated with the same shared state as *this.
An exception is thrown if *this has no shared state or
get_future has already been called. To get multiple "pop" ends of the promise-future communication channel, use std::future::share.
 Return value
A future referring to the shared state of *this
std::future_error on the following conditions:
- *this has no shared state. The error category is set to no_state.
get_future()has already been called on a promise with the same shared state as *this. The error category is set to future_already_retrieved.