Namespaces
Variants

std::experimental::shared_future<T>:: shared_future

From cppreference.net

shared_future ( ) noexcept ;
(1)
shared_future ( std:: experimental :: shared_future < T > && f ) noexcept ;
(2)
shared_future ( const std:: experimental :: shared_future < T > & f ) ;
(3)
shared_future ( std:: experimental :: future < std:: experimental :: shared_future < T >> && other ) noexcept ;
(4)
shared_future ( std:: experimental :: future < T > && f ) noexcept ;
(5)
1) Constructor por defecto. Construye un objeto shared_future vacío que no hace referencia a un estado compartido.
2) Construye un objeto shared_future , transfiriendo el estado compartido mantenido por f , si existe alguno. Después de la construcción, f. valid ( ) es false .
3) Construye un futuro compartido que hace referencia al mismo estado compartido que f , si existe alguno.
4) Constructor de desembalaje. Construye un objeto shared_future desde el estado compartido referido por other , si existe. Si other. valid ( ) == false antes de esta llamada, el objeto shared_future construido está vacío. De lo contrario, el objeto shared_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 shared_future resultante.
  • other está listo, pero other. get ( ) es inválido. Una excepción de tipo std::future_error con una condición de error std::future_errc::broken_promise se almacena en el estado compartido asociado con el objeto shared_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 .
5) Construye un objeto shared_future , transfiriendo el estado compartido mantenido por f , si existe. Después de la construcción, f. valid ( ) es 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 de C++ publicados anteriormente.

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