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 ;
(depuis C++11)

Équivalent à use_count ( ) == 0 . Le destructeur de l'objet géré peut ne pas encore avoir été appelé, mais la destruction de cet objet est imminente (ou peut avoir déjà eu lieu).

Table des matières

Paramètres

(aucun)

Valeur de retour

true si l'objet géré a déjà été supprimé, false sinon.

Notes

Si l'objet géré est partagé entre plusieurs threads, il n'est significatif que lorsque expired() renvoie true.

Exemple

Montre comment expired est utilisé pour vérifier la validité du pointeur.

#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();
}

Sortie :

gw is valid
gw is expired

Voir aussi

crée un shared_ptr qui gère l'objet référencé
(fonction membre publique)
retourne le nombre d'objets shared_ptr qui gèrent l'objet
(fonction membre publique)