<future>
Zahrnuje standardní hlavičku <future> k definování šablon tříd a podpůrných šablon, které zjednodušují spuštění funkce, případně v samostatném vláknu, a načítání jejího výsledku.Výsledkem je hodnota vrácená funkcí nebo výjimka, která je vygenerována touto funkcí, ale není ve funkci zachycena.
Toto hlavička používá modul Concurrency Runtime (ConcRT), takže ji lze použít společně s jinými mechanismy modulu ConcRT.Další informace o modulu ConcRT naleznete v tématu Concurrency Runtime.
#include <future>
Poznámky
[!POZNÁMKA]
V kódu, který je zkompilován s použitím možností /clr nebo /clr:pure je tato hlavička blokována.
Asynchronní poskytovatel uloží výsledek volání funkce.Asynchronní vrácení objektu se používá k získání výsledku volání funkce.Přidružený asynchronní stav zajišťuje komunikaci mezi asynchronním poskytovatelem a jedním nebo více objekty asynchronního navrácení.
Program přímo nevytvoří žádné přidružené objekty s asynchronním stavem.Program vytvoří asynchronního zprostředkovatele vždy, když je potřeba, ze kterého vytvoří asynchronní vrácení objektu, který sdílí jeho přidružený asynchronní stav s tímto poskytovatelem.Asynchronní poskytovatelé a asynchronní vrácené objekty spravují objekty, které uchovávají jejich sdílené přidružené asynchronní stavy.Když jej poslední objekt, který odkazuje na přidružený asynchronní státě uvolní, je objekt, který uchovává přidružený asynchronní stav zničen.
Asynchronní poskytovatel nebo asynchronní vrácení objektu, které nemá přidružený žádný asynchronní stav je prázdné.
Asynchronní přidružený stav je připraven pouze v případě, že má asynchronní zprostředkovatel uloženu návratovou hodnotu nebo výjimku.
Šablona funkce async a šablony třídy promise a packaged_task jsou asynchronní poskytovatelé.Šablony tříd future a shared_future popisují asynchronní vrácení objektů.
Všechny šablony tříd promise, future a shared_future mají specializaci typu void a částečnou specializaci pro ukládání a načítání hodnot odkazem.Tyto specializace se liší od primární šablony pouze v signaturách a sémantice funkcí, které slouží k ukládání a načítání vrácené hodnoty.
Objekty future a shared_future nikdy neblokují své destruktory, kromě jediného případu, který je zachován z důvodu zpětné kompatibility. Na rozdíl od jiných objektů future objekt future nebo poslední objekt shared_future připojený k úkolu započatému voláním funkce std::async, destruktor blokuje, pokud úkol nebyl dokončen, tedy blokuje, pokud podproces dosud nezavolal metodu .get() nebo .wait() a tento úkol je stále spuštěn.Následující poznámka použitelnosti byla přidána do popisu funkce std::async v návrhu standardu: „[Poznámka: Pokud je objekt future z funkce std::async přesunut mimo místní rozsah, jiný kód, který používá tento objekt future, musí být vědom, že destruktor objektu future může blokovat sdílený stav, aby se stal připravený. – konec poznámky]“. Ve všech ostatních případech jsou destruktory objektů future a shared_future vyžadovány a zaručují, že nikdy nebudou blokovány.
Členy
Třídy
Name |
Popis |
---|---|
Popisuje asynchronní vrácený objekt. |
|
Popisuje objekt výjimky, který může být vyvolán metodami typů, které spravují objekty future. |
|
Popisuje asynchronního poskytovatele, který je obálkou volání a jehož signatura volání je Ty(ArgTypes...).Jeho přidružený asynchronní stav kromě možných výsledků uchovává kopii volatelného objektu. |
|
Popisuje asynchronního poskytovatele. |
|
Popisuje asynchronní vrácený objekt.Na rozdíl od objektu future lze asynchronního poskytovatele přiřadit k libovolnému počtu objektů shared_future. |
Struktury
Name |
Popis |
---|---|
Specializace, která označuje, že je objekt future_errc vhodný pro uložení objektu error_code. |
|
Specializace, která vždy uchovává hodnotu true. |
Funkce
Name |
Popis |
---|---|
Představuje asynchronního poskytovatele. |
|
Vrátí odkaz na objekt error_category označující chyby, které jsou přidruženy objektům future. |
|
Vytvoří objekt error_code, který má objekt error_category charakterizující chyby objektu future. |
|
Vytvoří objekt error_condition, který má objekt error_category charakterizující chyby objektu future. |
|
Vymění přidružený asynchronní stav jednoho z objektů promise za stav jiného objektu. |
Výčty
Name |
Popis |
---|---|
Poskytuje symbolické názvy chyb, které jsou hlášeny třídou future_error. |
|
Poskytuje symbolické názvy důvodů, které může časovaná čekající funkce vrátit. |
|
Představuje typ maskování bitů, který popisuje možné režimy šablony funkce async. |