Namespaces
Variants

std::experimental::future<T>:: future

From cppreference.net

future ( ) noexcept ;
(1)
future ( std:: experimental :: future < T > && f ) noexcept ;
(2)
future ( const std:: experimental :: future < T > & ) = delete ;
(3)
(4)
1) Constructor por defecto. Construye un objeto future vacío que no hace referencia a un estado compartido.
2) Construye un objeto future , transfiriendo el estado compartido mantenido por f , si existe. Después de la construcción, f. valid ( ) es false .
3) El constructor de copia está eliminado. future no se puede copiar.
4) Constructor de desembalaje. Construye un objeto future a partir del estado compartido referido por other , si existe alguno. Si other. valid ( ) == false antes de esta llamada, el objeto future construido está vacío. De lo contrario, el objeto future resultante estará listo cuando ocurra una de las siguientes condiciones:
  • other y other. get ( ) están ambos listos. El valor o excepción de other. get ( ) se almacena en el estado compartido asociado con el objeto future resultante.
  • other está listo, pero other. get ( ) es inválido. Se almacena una excepción de tipo std::future_error con una condición de error de std::future_errc::broken_promise en el estado compartido asociado con el objeto future resultante.
Después de que este constructor retorne, valid ( ) es igual al valor de other. valid ( ) previo a esta llamada, y other. valid ( ) == false .


Contenidos

Parámetros

f - otro objeto futuro con el cual inicializar
other - un objeto std::experimental::future para desenvolver

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2697 Concurrency TS el comportamiento del constructor de desembalaje no está claro con un future inválido construye un future vacío

Véase también

construye el objeto future
(función miembro pública de std::future<T> )