Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Описывает асинхронный возвращаемый объект.
Синтаксис
template <class Ty>
class future;
Замечания
Каждый стандартный асинхронный поставщик возвращает объект, тип которого является экземпляром данного шаблона. Объект future предоставляет единственный доступ к асинхронным поставщику, с которым он связан. Если требуется несколько асинхронных возвращаемых объектов, связанных с тем же асинхронным поставщиком, скопируйте future объект в shared_future объект.
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
future |
Формирует объект future. |
Открытые методы
| Имя | Описание |
|---|---|
get |
Получает результат, который хранится в связанном асинхронном состоянии. |
share |
Преобразует объект в shared_future. |
valid |
Указывает, не является ли объект пустым. |
wait |
Блокирует текущий поток, пока связанное асинхронное состояние не будет иметь значение ready. |
wait_for |
Выполняет блокировку, пока не будет готово связанное асинхронное состояние или не истечет указанный период времени. |
wait_until |
Выполняет блокировку, пока не будет готово связанное асинхронное состояние или не наступит указанный момент времени. |
Открытые операторы
| Имя | Описание |
|---|---|
future::operator= |
Передает связанное асинхронное состояние от указанного объекта . |
Требования
Заголовок: <future>
Пространство имен: std
Конструкторы
Формирует объект future.
future() noexcept;
future(future&& Other) noexcept;
Параметры
Other
Объект future.
Замечания
Первый конструктор создает объект future, который не имеет связанного асинхронного состояния.
Второй конструктор создает future объект и передает связанное асинхронное состояние из Other. Другие больше не имеют связанного асинхронного состояния.
get
Получает результат, который хранится в связанном асинхронном состоянии.
Ty get();
Возвращаемое значение
Если результат — исключение, метод создает его повторно. В противном случае результат будет возвращен.
Замечания
До получения результата данный метод блокирует текущий поток, пока не будет готово связанное асинхронное состояние.
Для частичной специализации future<Ty&> хранимое значение является ссылкой на объект, который был передан асинхронному поставщику как возвращаемое значение.
Так как для специализации future<void> хранимые значения не существуют, метод возвращает void.
В других специализациях метод перемещает свое возвращаемое значение из сохраненного значения. Таким образом, этот метод следует вызывать только один раз.
operator=
Передает связанное асинхронное состояние из указанного объекта.
future& operator=(future&& Right) noexcept;
Параметры
Right
Объект future.
Возвращаемое значение
*this
Замечания
После передачи права больше не имеет связанного асинхронного состояния.
share
Преобразует объект в shared_future объект.
shared_future<Ty> share();
Возвращаемое значение
shared_future(move(*this))
valid
Указывает, имеет ли объект связанное асинхронное состояние.
bool valid() noexcept;
Возвращаемое значение
Значение true, если объект имеет связанное асинхронное состояние; в противном случае — значение false.
wait
Блокирует текущий поток, пока связанное асинхронное состояние не получит значение ready.
void wait() const;
Замечания
Связанное асинхронное состояние имеет значение ready, только если его асинхронный поставщик сохранил возвращаемое значение или исключение.
wait_for
Блокирует текущий поток, пока связанное асинхронное состояние не получит значение ready или не истечет указанный период времени.
template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;
Параметры
Rel_time
chrono::duration Объект, указывающий максимальный интервал времени, который блокирует поток.
Возвращаемое значение
Значение, future_status указывающее причину возврата.
Замечания
Связанное асинхронное состояние имеет значение "ready", только если его асинхронный поставщик сохранил возвращаемое значение или исключение.
wait_until
Блокирует текущий поток, пока связанное асинхронное состояние не получит значение ready или не наступит указанный момент времени.
template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;
Параметры
Abs_time
time_point Объект, задающий время, после которого поток может разблокироваться.
Возвращаемое значение
Значение, future_status указывающее причину возврата.
Замечания
Связанное асинхронное состояние имеет значение ready, только если его асинхронный поставщик сохранил возвращаемое значение или исключение.