Sdílet prostřednictvím


future Třída

Popisuje asynchronní návratový objekt.

Syntaxe

template <class Ty>
class future;

Poznámky

Každý standardní asynchronní zprostředkovatel vrátí objekt, jehož typ je instance této šablony. Objekt future poskytuje jediný přístup k asynchronnímu zprostředkovateli, ke kterému je přidružený. Pokud potřebujete více asynchronních návratových objektů přidružených ke stejnému asynchronnímu zprostředkovateli, zkopírujte future objekt do objektu shared_future .

Členové

Veřejné konstruktory

Jméno popis
future future Vytvoří objekt.

Veřejné metody

Jméno popis
get Načte výsledek uložený v přidruženém asynchronním stavu.
share Převede objekt na objekt .shared_future
valid Určuje, jestli objekt není prázdný.
wait Blokuje aktuální vlákno, dokud není připravený přidružený asynchronní stav.
wait_for Blokuje, dokud není přidružený asynchronní stav připravený nebo dokud zadaný čas uplynou.
wait_until Blokuje, dokud není přidružený asynchronní stav připravený nebo dokud není zadaný bod v čase.

Veřejné operátory

Jméno popis
future::operator= Přenese přidružený asynchronní stav ze zadaného objektu.

Požadavky

Záhlaví:<future>

Obor názvů:std

Konstruktory

future Vytvoří objekt.

future() noexcept;
future(future&& Other) noexcept;

Parametry

Other
Objekt future .

Poznámky

První konstruktor vytvoří future objekt, který nemá přidružený asynchronní stav.

Druhý konstruktor vytvoří future objekt a přenese přidružený asynchronní stav z Jiné. Jiné už nemají přidružený asynchronní stav.

get

Načte výsledek uložený v přidruženém asynchronním stavu.

Ty get();

Vrácená hodnota

Pokud je výsledkem výjimka, metoda ji znovu zvětšuje. V opačném případě se vrátí výsledek.

Poznámky

Před načtením výsledku tato metoda blokuje aktuální vlákno, dokud není přidružený asynchronní stav připravený.

Pro částečnou specializaci future<Ty&>je uložená hodnota efektivně odkazem na objekt, který byl předán asynchronnímu zprostředkovateli jako návratová hodnota.

Vzhledem k tomu, že pro specializaci future<void>neexistuje žádná uložená hodnota , vrátí voidmetoda .

V jiných specializacech metoda přesune svoji návratovou hodnotu z uložené hodnoty. Proto volejte tuto metodu pouze jednou.

operator=

Přenese přidružený asynchronní stav ze zadaného objektu.

future& operator=(future&& Right) noexcept;

Parametry

Right
Objekt future .

Vrácená hodnota

*this

Poznámky

Po převodu už funkce Right nemá přidružený asynchronní stav.

share

Převede objekt na shared_future objekt.

shared_future<Ty> share();

Vrácená hodnota

shared_future(move(*this))

valid

Určuje, zda objekt má přidružený asynchronní stav.

bool valid() noexcept;

Vrácená hodnota

truepokud má objekt přidružený asynchronní stav; v opačném případě . false

wait

Blokuje aktuální vlákno, dokud není připravený přidružený asynchronní stav.

void wait() const;

Poznámky

Přidružený asynchronní stav je připravený pouze v případě, že jeho asynchronní zprostředkovatel uložil návratovou hodnotu nebo uložil výjimku.

wait_for

Blokuje aktuální vlákno, dokud není přidružený asynchronní stav připravený nebo dokud zadaný časový interval uplynul.

template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;

Parametry

Rel_time
Objekt chrono::duration , který určuje maximální časový interval, který vlákno blokuje.

Vrácená hodnota

A future_status , který označuje důvod vrácení.

Poznámky

Přidružený asynchronní stav je připravený pouze v případě, že jeho asynchronní zprostředkovatel uložil návratovou hodnotu nebo uložil výjimku.

wait_until

Blokuje aktuální vlákno, dokud není přidružený asynchronní stav připravený nebo až po zadaném časovém bodu.

template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;

Parametry

Abs_time
Objekt time_point , který určuje čas, po kterém může vlákno odblokovat.

Vrácená hodnota

A future_status , který označuje důvod vrácení.

Poznámky

Přidružený asynchronní stav je připravený pouze v případě, že jeho asynchronní zprostředkovatel uložil návratovou hodnotu nebo uložil výjimku.

Viz také

Referenční informace k souborům hlaviček
<future>