Namensräume
Varianten
Aktionen

std::weak_ptr<T>::expired

Von cppreference.com
< cpp‎ | memory‎ | weak ptr
 
 
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
 
 
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.

#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) [bearbeiten]
gibt die Anzahl der shared_ptr-Objekte zurück, die das Objekt verwalten
(public member function) [bearbeiten]