Namensräume
Varianten
Aktionen

std::experimental::observer_ptr

Von cppreference.com
 
 
 
 
 
Definiert im Header <experimental/memory>
template< class W >
class observer_ptr;
(Library Fundamentals TS v2)

std::experimental::observer_ptr ist ein nicht-besitzender Zeiger, oder Observer. Der Observer speichert einen Zeiger auf ein zweites Objekt, bekannt als beobachtetes Objekt. Ein observer_ptr kann auch kein beobachtetes Objekt haben.

Ein Observer ist in keiner Weise für das beobachtete Objekt verantwortlich; es besteht keine inhärente Beziehung zwischen einem Observer und dem Objekt, das er beobachtet.

Er ist als nahezu direkter Ersatz für rohe Zeigertypen gedacht, mit dem Vorteil, dass er als Vokabulartyp seine beabsichtigte Verwendung angibt, ohne dass eine detaillierte Analyse durch Code-Leser erforderlich ist.

Spezialisierungen von observer_ptr erfüllen die Anforderungen von CopyConstructible und CopyAssignable.

Typanforderungen
-
W darf kein Referenztyp sein, kann aber ein unvollständiger Typ sein.

Inhalt

[edit] Member-Typen

Mitgliedertyp Definition
element_type W, der Typ des von diesem observer_ptr beobachteten Objekts

[edit] Member-Funktionen

konstruiert einen neuen observer_ptr
(public member function) [edit]
(Destruktor)
(implizit deklariert)
zerstört einen observer_ptr
(public member function) [edit]
operator=
(implizit deklariert)
implizit deklarierte Kopier- und Zuweisungsoperatoren, die den gespeicherten Zeiger zuweisen
(public member function) [edit]
Modifizierer
gibt einen Zeiger auf das beobachtete Objekt zurück und hört auf, das Objekt zu beobachten
(public member function) [edit]
ersetzt das beobachtete Objekt
(public member function) [edit]
tauscht die beobachteten Objekte
(public member function) [edit]
Observer
gibt einen Zeiger auf das beobachtete Objekt zurück
(public member function) [edit]
prüft, ob ein beobachtetes Objekt vorhanden ist
(public member function) [edit]
dereferenziert den Zeiger auf das beobachtete Objekt
(public member function) [edit]
Konvertierungen
explizite Konvertierungsfunktion zum gespeicherten Zeiger
(public member function) [edit]

[edit] Nicht-Member-Funktionen

erstellt einen observer_ptr, der ein Objekt beobachtet
(function template) [edit]
vergleicht mit einem anderen observer_ptr oder mit nullptr
(function template) [edit]
spezialisiert den swap-Algorithmus
(function template) [edit]

[edit] Hilfsklassen

Hash-Unterstützung für observer_ptr
(class template specialization) [edit]

[edit] Beispiel