Namespaces
Variants

std::experimental::scope_exit<EF>:: scope_exit

From cppreference.net

template < class Fn >
explicit scope_exit ( Fn && fn ) noexcept ( /*see below*/ ) ;
(1) (TS de bibliotecas fundamentales v3)
scope_exit ( scope_exit && other ) noexcept ( /*see below*/ ) ;
(2) (TS de bibliotecas fundamentales v3)
scope_exit ( const scope_exit & ) = delete ;
(3) (TS de bibliotecas fundamentales v3)

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

1) Inicializa la función de salida con una función u objeto función. El scope_exit 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 .
Si la inicialización del almacenado EF lanza una excepción, llama a fn ( ) .
Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_same_v < std:: remove_cvref_t < Fn > , scope_exit > 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 a fn ( ) lanza una excepción o resulta en comportamiento indefinido, incluso si fn no ha sido llamado.
2) Constructor de movimiento. Inicializa el EF almacenado con el de other . El scope_exit 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_exit no es CopyConstructible .

Contenidos

Parámetros

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

Excepciones

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

1)
noexcept especificación:

Ejemplo

Véase también

hace que el scope_exit sea inactivo
(función miembro pública)