Namespaces
Variants

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

From cppreference.net

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)
**Примечание:** Весь код C++ и HTML-теги сохранены в оригинальном виде в соответствии с требованиями. В данном случае переводить было нечего, так как весь текст состоит из C++ кода, HTML-тегов и нумерации, которые не подлежат переводу.
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> )