Namespaces
Variants

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

From cppreference.net

template < class Fn >
explicit scope_exit ( Fn && fn ) noexcept ( /*siehe unten*/ ) ;
(1) (Library Fundamentals TS v3)
scope_exit ( scope_exit && other ) noexcept ( /*siehe unten*/ ) ;
(2) (Library Fundamentals TS v3)
scope_exit ( const scope_exit & ) = delete ;
(3) (Library Fundamentals TS v3)

Erstellt einen scope_exit aus einer Funktion, einem Funktionsobjekt oder einem anderen scope_exit .

1) Initialisiert die Exit-Funktion mit einer Funktion oder einem Funktionsobjekt. Das konstruierte scope_exit ist aktiv.
Wenn Fn kein Lvalue-Referenztyp ist und std:: is_nothrow_constructible_v < EF, Fn > true ist, wird das gespeicherte EF mit std:: forward < Fn > ( fn ) initialisiert; andernfalls wird es mit fn initialisiert.
Wenn die Initialisierung des gespeicherten EF eine Ausnahme auslöst, ruft fn ( ) auf.
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: is_same_v < std:: remove_cvref_t < Fn > , scope_exit > gleich false ist und std:: is_constructible_v < EF, Fn > gleich true ist.
Das Programm ist fehlerhaft, wenn der Funktionsaufrufausdruck fn ( ) fehlerhaft ist.
Das Verhalten ist undefiniert, wenn der Aufruf von fn ( ) eine Exception wirft oder zu undefiniertem Verhalten führt, selbst wenn fn nicht aufgerufen wurde.
2) Move-Konstruktor. Initialisiert den gespeicherten EF mit dem in other . Der konstruierte scope_exit ist aktiv genau dann, wenn other vor der Konstruktion aktiv war.
Wenn std:: is_nothrow_move_constructible_v < EF > true ist, initialisiert den gespeicherten EF (bezeichnet als exitfun ) mit std:: forward < EF > ( other. exitfun ) , andernfalls initialisiert es ihn mit other. exitfun .
Nach erfolgreichem Move-Konstruktor wird other. release ( ) aufgerufen und other wird inaktiv.
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: is_nothrow_move_constructible_v < EF > gleich true ist oder std:: is_copy_constructible_v < EF > gleich true ist.
Das Verhalten ist undefiniert, wenn
3) scope_exit ist nicht CopyConstructible .

Inhaltsverzeichnis

Parameter

fn - Funktion oder Funktionsobjekt zur Initialisierung des gespeicherten EF
other - scope_exit zum Verschieben von

Ausnahmen

Jede Ausnahme, die während der Initialisierung des gespeicherten EF geworfen wird.

1)
noexcept Spezifikation:

Beispiel

Siehe auch

macht den scope_exit inaktiv
(öffentliche Elementfunktion)