◐ Shell
clean mode source ↗

std::weak_ptr::lock – cppreference.com

Aus cppreference.com

<tbody> </tbody>

std::shared_ptr<T> lock() const

(seit C++11)

Erstellt einen neuen std::shared_ptr, welcher das Eigentum des verwalteten Objekts teilt. Wenn kein verwaltetes Objekt existiert, d.h. *this leer ist, dann ist der zurückgegebene shared_ptr auch ist leer.

Effektiv wird expired() ? shared_ptr<T>() : shared_ptr<T>(*this) atomar ausgeführt und zurückgegeben.

Parameter

(keine)

Rückgabewert

Ein shared_ptr welcher das Eigentum teilt.

Ausnahmen

Notes

Sowohl diese Funktion also auch der Konstruktor des shared_ptr kann verwendet werden, um vorübergehende Besitz des verwalteten Objekts zu erwerben. Der Unterschied ist, dass der Konstruktor std::shared_ptr<T> eine Exception wirft, wenn der std::weak_ptr leer ist, während std::weak_ptr<T>::lock() eine leere std::shared_ptr<T> konstruiert.

Beispiel

Siehe auch

prüft, ob das referenzierte Objekt bereits gelöscht wurde
(öffentliche Elementfunktion) [edit]