close
Espacios de nombres
Variantes

std::weak_ptr::expired

De cppreference.com
 
 
Biblioteca de servicios
 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
(C++23)
Asignadores de memoria
Recursos de memoria
Almacenamiento no inicializado
Algoritmos de memoria no inicializada
Algoritmos restringidos de memoria no inicializada
Apoyo para recolección de basura
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
Misceláneos
(C++20)
(C++11)
(C++11)
 
 
<tbody> </tbody>
bool expired() const noexcept;
(desde C++11)

Equivalente a use_count() == 0. Es posible que aún no se haya llamado al destructor del objeto gestionado, pero la destrucción de este objeto es inminente (o puede que ya haya ocurrido).

Parámetros

(Ninguno)

Valor de retorno

true si el objeto gestionado ya se eliminó, false de lo contrario.

Notas

Esta función es intrínsecamente susceptible a carreras de datos si el objeto gestionado se comparte entre subprocesos. En particular, un resultado falso puede volverse obsoleto antes de que pueda usarse. Un resultado true es confiable.

Ejemplo

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

#include <iostream>
#include <memory>

std::weak_ptr<int> gw;

void f()
{
    if (!gw.expired()) {
	std::cout << "gw es válido\n";
    }
    else {
        std::cout << "gw ya expiró\n";
    }
}
 
int main()
{
    {
        auto sp = std::make_shared<int>(42);
	gw = sp;

	f();
    }

    f();
}

Salida:

gw es válido
gw ya expiró


Véase también

Crea un shared_ptr que gestiona el objeto referenciado.
(función miembro pública) [editar]
Devuelve el número de objetos shared_ptr que gestionan el objeto.
(función miembro pública) [editar]