Namespaces
Variants

std::experimental::scope_success<EF>:: scope_success

From cppreference.net

template < class Fn >
explicit scope_success ( Fn && fn ) noexcept ( /*ver más abajo*/ ) ;
(1) (biblioteca fundamentals TS v3)
scope_success ( scope_success && other ) noexcept ( /*ver más abajo*/ ) ;
(2) (biblioteca fundamentals TS v3)
scope_success ( const scope_success & ) = delete ;
(3) (biblioteca fundamentals TS v3)

Crea un scope_success a partir de una función, un objeto función u otro scope_success .

1) Inicializa la función de salida con una función u objeto función, e inicializa el contador de excepciones no capturadas como si fuera con std:: uncaught_exceptions ( ) . El scope_success construido está activo.
Si Fn no es un tipo de referencia lvalue y std:: is_nothrow_constructible_v < EF, Fn > es true , el EF almacenado se inicializa con std:: forward < Fn > ( fn ) ; de lo contrario se inicializa con fn .
Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_same_v < std:: remove_cvref_t < Fn > , scope_success > es false y std:: is_constructible_v < EF, Fn > es true .
El programa está mal formado si la expresión de llamada a función fn ( ) está mal formada.
El comportamiento es indefinido si llamar fn ( ) resulta en comportamiento indefinido, incluso si fn no ha sido llamado.
2) Constructor de movimiento. Inicializa el EF almacenado con el de other , e inicializa el contador de excepciones no capturadas con el de other . El scope_success construido está activo si y solo si other estaba activo antes de la construcción.
Si std:: is_nothrow_move_constructible_v < EF > es true , inicializa el EF almacenado (denotado por exitfun ) con std:: forward < EF > ( other. exitfun ) , de lo contrario lo inicializa con other. exitfun .
Después de una construcción por movimiento exitosa, other. release ( ) es llamado y other se vuelve inactivo.
Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_nothrow_move_constructible_v < EF > es true o std:: is_copy_constructible_v < EF > es true .
El comportamiento es indefinido si
3) scope_success no es CopyConstructible .

Contenidos

Parámetros

fn - función u objeto de función utilizado para inicializar el almacenado EF
other - scope_success del cual mover

Excepciones

Cualquier excepción lanzada durante la inicialización del EF almacenado.

1)
noexcept especificación:

Ejemplo

Véase también

( removed in C++20* ) (C++17)
verifica si el manejo de excepciones está actualmente en progreso
(función)
hace que el scope_success se inactive
(función miembro pública)