Namespaces
Variants

std::experimental::future<T>:: future

From cppreference.net

future ( ) noexcept ;
(1)
future ( std:: experimental :: future < T > && f ) noexcept ;
(2)
future ( const std:: experimental :: future < T > & ) = delete ;
(3)
(4)
1) Конструктор по умолчанию. Создает пустой объект future , который не ссылается на общее состояние.
2) Создает объект future , передавая общее состояние, хранимое в f , если оно существует. После создания f. valid ( ) возвращает false .
3) Конструктор копирования удален. future не может быть скопирован.
4) Распаковывающий конструктор. Создает объект future из общего состояния, на которое ссылается other , если оно существует. Если other. valid ( ) == false до этого вызова, созданный объект future будет пустым. В противном случае результирующий объект future становится готовым, когда происходит одно из следующих событий:
  • other и other. get ( ) оба готовы. Значение или исключение из other. get ( ) сохраняется в общем состоянии, связанном с результирующим объектом future .
  • other готов, но other. get ( ) недействителен. Исключение типа std::future_error с кодом ошибки std::future_errc::broken_promise сохраняется в общем состоянии, связанном с результирующим объектом future .
После возврата из этого конструктора, valid ( ) равно значению other. valid ( ) до этого вызова, и other. valid ( ) == false .


Содержание

Параметры

f - будущий объект для инициализации
other - объект std::experimental::future для разворачивания

Пример

Отчёты о дефектах

Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 2697 Concurrency TS поведение разворачивающего конструктора неясно с невалидным future создает пустой future

Смотрите также

создает объект future
(публичная функция-член std::future<T> )