Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
| Název | Popis |
|---|---|
| shared_future | shared_future Vytvoří objekt. |
Veřejné metody
| Název | 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
| Název | 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 .
Návratová 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;
Návratová 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.
Návratová 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.
Návratová 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.