std::weak_ptr<T>::expired
Von cppreference.com
| bool expired() const noexcept; |
(seit C++11) | |
Äquivalent zu use_count() == 0. Der Destruktor für das verwaltete Objekt wurde möglicherweise noch nicht aufgerufen, aber die Zerstörung dieses Objekts steht unmittelbar bevor (oder ist möglicherweise bereits erfolgt).
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
true, wenn das verwaltete Objekt bereits gelöscht wurde, false andernfalls.
[bearbeiten] Anmerkungen
Wenn das verwaltete Objekt zwischen Threads geteilt wird, ist dies nur sinnvoll, wenn expired() true zurückgibt.
[bearbeiten] Beispiel
Demonstriert, wie expired zur Überprüfung der Gültigkeit des Zeigers verwendet wird.
Führen Sie diesen Code aus
#include <iostream> #include <memory> std::weak_ptr<int> gw; void f() { if (!gw.expired()) std::cout << "gw is valid\n"; else std::cout << "gw is expired\n"; } int main() { { auto sp = std::make_shared<int>(42); gw = sp; f(); } f(); }
Ausgabe
gw is valid gw is expired
[bearbeiten] Siehe auch
erstellt einen shared_ptr, der das referenzierte Objekt verwaltet(public member function) | |
gibt die Anzahl der shared_ptr-Objekte zurück, die das Objekt verwalten(public member function) |