Namensräume
Varianten
Aktionen

std::out_ptr_t<Smart,Pointer,Args...>::~out_ptr_t

Von cppreference.com
< cpp‎ | memory‎ | out ptr t
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
~out_ptr_t();
(seit C++23)

Setzt das angepasste Smart-Objekt mit dem Wert des modifizierten Pointer-Objekts (oder des void*-Objekts, wenn operator void**() aufgerufen wurde) und die erfassten Argumente zurück.

Seien

  • s bezeichnet das angepasste Smart-Objekt,
  • args... bezeichnet die erfassten Argumente,
  • p bezeichnet den Wert des gespeicherten Pointer oder static_cast<Pointer>(*operator void**()), wenn operator void** aufgerufen wurde,
  • SP sei
    • Smart::pointer, wenn dieser gültig ist und einen Typ bezeichnet, andernfalls,
    • Smart::element_type*, wenn Smart::element_type gültig ist und einen Typ bezeichnet, andernfalls,
    • std::pointer_traits<Smart>::element_type*, wenn std::pointer_traits<Smart>::element_type gültig ist und einen Typ bezeichnet, andernfalls
    • Zeiger.

Wenn s.reset(static_cast<SP>(p), std::forward<Args>(args)...) wohldefiniert ist, führt der Destruktor Folgendes aus:

if (p) s.reset(static_cast<SP>(p), std::forward<Args>(args)...);,

andernfalls, wenn std::is_constructible_v<Smart, SP, Args...> true ist, führt der Destruktor Folgendes aus:

if (p) s = Smart(static_cast<SP>(p), std::forward<Args>(args)...);,

andernfalls ist das Programm schlecht geformt.

[bearbeiten] Hinweise

Wenn Smart eine std::shared_ptr-Spezialisierung ist, kann die Implementierung den Speicher für den neuen Steuerblock bei der Konstruktion zuweisen, um nicht-werfende Arbeiten dem Destruktor zu überlassen.

Nach Wert kopierte Argumente werden nach dem Zurücksetzen zerstört.