Namespaces
Variants

std::weak_ptr<T>:: expired

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
bool expired ( ) const noexcept ;
(seit C++11)

Entspricht use_count ( ) == 0 . Der Destruktor des verwalteten Objekts wurde möglicherweise noch nicht aufgerufen, aber die Zerstörung dieses Objekts steht unmittelbar bevor (oder könnte bereits stattgefunden haben).

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

true falls das verwaltete Objekt bereits gelöscht wurde, false andernfalls.

Hinweise

Wenn das verwaltete Objekt zwischen Threads geteilt wird, ist es nur dann aussagekräftig, wenn expired() true zurückgibt.

Beispiel

Demonstriert, wie expired verwendet wird, um die Gültigkeit des Zeigers zu überprüfen.

#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

Siehe auch

erstellt einen shared_ptr , der das referenzierte Objekt verwaltet
(öffentliche Elementfunktion)
gibt die Anzahl der shared_ptr -Objekte zurück, die das Objekt verwalten
(öffentliche Elementfunktion)