# std::experimental::shared_future<T>::shared_future

< cpp‎ | experimental‎ | shared future

shared_future() noexcept; | (1) |
shared_future(std::experimental::shared_future<T>&& f) noexcept; | (2) |
shared_future(const std::experimental::shared_future<T>& f); | (3) |
shared_future(std::experimental::future<std::experimental::shared_future<T>> && other) noexcept; | (4) |
shared_future(std::experimental::future<T>&& f) noexcept; | (5) |

1) 默认构造函数。构造不指代共享状态的空 `shared_future` 对象。
2) 构造 `shared_future` ，转移 `f` 所保有的共享状态，若存在。构造后 f.valid() 为 false 。
3) 构造 `shared_future` ，与 `f` 指代同一共享状态，若共享状态存在。
4) 从 `other` 所指代的共享状态构造 `shared_future` 对象。结果 `shared_future` 的对象在下列之一发生时变为就绪：

- other 与 other.get() 均就绪。存储来自 other.get() 的值或异常到与结果 `shared_future` 状态关联的共享状态中。
- other 就绪，但 other.get() 非法。存储以 std::future_errc::broken_promise 为错误条件的 std::future_error 类型异常到与结果 `shared_future` 对象关联的共享状态中。

此构造函数返回后， valid() == true 而 other.valid() == false 。
5) 构造 `shared_future` 对象，转移 `f` 所保有的共享状态，若存在。构造后 f.valid() 为 false 。

### 参数

f | - | 用以初始化的另一 future 对象
other | - | 要解包装的 `std::experimental::future` 对象

### 示例

| 本节未完成 原因：暂无示例

### 参阅

(构造函数) | 构造 future 对象 (`std::shared_future<T>` 的公开成员函数)