std::experimental::unique_resource<R, D>::reset
Von cppreference.com
< cpp | experimental | unique resource
| void reset() noexcept; |
(1) | (library fundamentals TS v3) |
| template< class RR > void reset( RR&& r ); |
(2) | (library fundamentals TS v3) |
1) Gibt die Ressource frei, indem der Deleter mit dem zugrunde liegenden Ressourcen-Handle aufgerufen wird, falls
unique_resource diese besitzt. unique_resource besitzt die Ressource nach dem Aufruf nicht mehr.2) Ersetzt die Ressource, indem 1) aufgerufen wird, und weist dann das gespeicherte Ressourcen-Handle mit std::forward<RR>(r) zu, falls std::is_nothrow_assignable_v<RS, RR> true ist, andernfalls mit std::as_const(r), wobei
RS der Typ des gespeicherten Ressourcen-Handles ist. unique_resource besitzt die Ressource nach dem Aufruf. Wenn die Kopierzuweisung des gespeicherten Ressourcen-Handles eine Ausnahme wirft, wird del_(r) aufgerufen, wobei
del das Deleter-Objekt ist. Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn der ausgewählte Zuweisungsausdruck, der das gespeicherte Ressourcen-Handle zuweist, wohlgeformt ist.
Das Programm ist schlecht geformt, wenn del_(r) schlecht geformt ist.
Das Verhalten ist undefiniert, wenn del_(r) zu undefiniertem Verhalten führt oder eine Ausnahme wirft.
Inhalt |
[bearbeiten] Parameter
| r | - | Ressourcen-Handle für eine neue zu verwaltende Ressource |
[bearbeiten] Rückgabewert
(keine)
[bearbeiten] Ausnahmen
2) Jede Ausnahme, die beim Zuweisen des gespeicherten Ressourcen-Handles geworfen wird.
[bearbeiten] Hinweise
Der Mechanismus stellt sicher, dass keine Ressourcen verloren gehen.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| Ersetzt das verwaltete Objekt (öffentliche Member-Funktion von std::unique_ptr<T,Deleter>) |