std::experimental::scope_success<EF>::~scope_success
| ~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) |