std::experimental::shared_future<T>:: shared_future
From cppreference.net
<
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)
构造一个共享 future,该 future 与
f
(如果存在)引用相同的共享状态。
4)
解包构造函数。从
other
所引用的共享状态(如果存在)构造
shared_future
对象。若在此调用前
other.
valid
(
)
==
false
,则构造的
shared_future
对象为空。否则,当以下任一情况发生时,生成的
shared_future
对象将变为就绪状态:
-
other
和
other.
get
(
)
均就绪。此时
other.
get
(
)
的值或异常将存储在与生成的
shared_future对象关联的共享状态中。 -
other
已就绪,但
other.
get
(
)
无效。此时会将类型为
std::future_error
、错误条件为
std::future_errc::broken_promise
的异常存储在与生成的
shared_future对象关联的共享状态中。
此构造函数返回后,
valid
(
)
的值等于调用前
other.
valid
(
)
的值,且
other.
valid
(
)
==
false
。
5)
构造一个
shared_future
对象,转移
f
所持有的共享状态(如果存在)。构造完成后,
f.
valid
(
)
为
false
。
目录 |
参数
| f | - | 用于初始化的另一个 future 对象 |
| other | - |
要展开的
std::experimental::future
对象
|
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| DR | 适用范围 | 发布时的行为 | 正确行为 |
|---|---|---|---|
| LWG 2697 | Concurrency TS |
解包构造函数在遇到无效
future
时的行为不明确
|
构造一个空的
future
|
参见
|
构造 future 对象
(
std::shared_future<T>
的公开成员函数)
|