Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
 
~scope_success() noexcept(noexcept(std::declval<EF&>()()));
(library fundamentals TS v3)

Ruft die Exit-Funktion auf, wenn das Ergebnis von std::uncaught_exceptions() kleiner oder gleich dem Zähler für unbehandelte Ausnahmen ist (typischerweise beim normalen Beenden) und das scope_success aktiv ist, dann wird das gespeicherte EF (wenn es ein Funktions-Objekt ist) und alle anderen nicht-statischen Datenelemente zerstört.

Ausnahmen

Wirft jede Ausnahme, die beim Aufruf der Exit-Funktion ausgelöst wird.

Anmerkungen

Ob der Destruktor bei einem Stack-Unwinding aufgerufen wird, kann durch den Vergleich des Ergebnisses von std::uncaught_exceptions() und des Zählers für unbehandelte Ausnahmen im scope_success erkannt werden.

Im Gegensatz zu anderen Klassen oder Klassentemplat-Spezialisierungen in der C++-Standardbibliothek und anderen C++-TR/TS's darf der Destruktor von scope_success eine Ausnahme auslösen.

[bearbeiten] Siehe auch

macht das scope_success inaktiv
(public member function) [bearbeiten]