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

Equivalente a use_count ( ) == 0 . El destructor del objeto gestionado puede no haber sido llamado aún, pero la destrucción de este objeto es inminente (o puede haber ocurrido ya).

Contenidos

Parámetros

(ninguno)

Valor de retorno

true si el objeto gestionado ya ha sido eliminado, false en caso contrario.

Notas

Si el objeto administrado es compartido entre hilos, solo tiene sentido cuando expired() devuelve true.

Ejemplo

Demuestra cómo se utiliza expired para verificar la validez del puntero.

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

Salida:

gw is valid
gw is expired

Véase también

crea un shared_ptr que gestiona el objeto referenciado
(función miembro pública)
devuelve el número de objetos shared_ptr que gestionan el objeto
(función miembro pública)