Sdílet prostřednictvím


shared_future – třída

Popisuje asynchronní návratový objekt. Na rozdíl od budoucího objektu může být asynchronní zprostředkovatel přidružený k libovolnému shared_future počtu objektů.

Syntaxe

template <class Ty>
class shared_future;

Poznámky

Nevolejte žádné jiné metody než valid, operator=a destruktor objektu shared_future , který je prázdný.

shared_future objekty nejsou synchronizovány. Volání metod na stejném objektu z více vláken zavádí rasu dat, která má nepředvídatelné výsledky.

Členové

Veřejné konstruktory

Jméno popis
shared_future shared_future Vytvoří objekt.

Veřejné metody

Jméno popis
get Načte výsledek uložený v přidruženém asynchronním stavu.
Platný Určuje, jestli objekt není prázdný.
Počkej 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
shared_future::operator= Přiřadí nový přidružený asynchronní stav.

Požadavky

Header:<future>

Obor názvů: std

shared_future::get

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

const Ty& get() const;

Ty& get() const;

void get() const;

Poznámky

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

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 shared_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 shared_future<void>neexistuje žádná uložená hodnota , vrátí voidmetoda .

shared_future::operator=

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

shared_future& operator=(shared_future&& Right) noexcept;
shared_future& operator=(const shared_future& Right);

Parametry

Right
Objekt shared_future .

Vrácená hodnota

*this

Poznámky

U prvního operátoru už po operaci nemá funkce Right přidružený asynchronní stav.

U druhé metody udržuje Right přidružený asynchronní stav.

shared_future::shared_future – konstruktor

shared_future Vytvoří objekt.

shared_future() noexcept;
shared_future(future<Ty>&& Right) noexcept;
shared_future(shared_future&& Right) noexcept;
shared_future(const shared_future& Right);

Parametry

Right
Budoucnost nebo shared_future objekt.

Poznámky

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

Druhý a třetí konstruktory vytvoří shared_future objekt a přenesou přidružený asynchronní stav zprava. Právo už nemá přidružený asynchronní stav.

Čtvrtý konstruktor vytvoří shared_future objekt, který má stejný přidružený asynchronní stav jako Right.

shared_future::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

shared_future::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.

shared_future::wait_for

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

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

Parametry

Rel_time
Chrono ::d uration objekt, který určuje maximální časový interval, který vlákno blokuje.

Vrácená hodnota

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.

shared_future::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
Chrono ::time_point objekt, který určuje čas, po kterém může vlákno odblokovat.

Vrácená hodnota

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
<Budoucnosti>