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, который ссылается на то же общее состояние, что и
f
, если оно существует.
4)
Распаковывающий конструктор. Создает объект
shared_future
из общего состояния, на которое ссылается
other
, если оно существует. Если
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 | - | будущий объект для инициализации |
| other | - |
объект
std::experimental::future
для разворачивания
|
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 2697 | Concurrency TS |
поведение разворачивающего конструктора неясно с невалидным
future
|
создает пустой
future
|
Смотрите также
|
создает объект future
(публичная функция-член
std::shared_future<T>
)
|