Namespaces
Variants

std::weak_ptr<T>:: reset

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

Libera la referencia al objeto administrado. Después de la llamada * this no administra ningún objeto.

Contenidos

Parámetros

(ninguno)

Valor de retorno

(ninguno)

Ejemplo

#include <iostream>
#include <memory>
int main()
{
    auto shared = std::make_shared<int>(), shared2 = shared, shared3 = shared2;
    auto weak = std::weak_ptr<int>{shared};
    std::cout << std::boolalpha 
              << "shared.use_count(): " << shared.use_count() << '\n'
              << "weak.use_count(): " << weak.use_count() << '\n'
              << "weak.expired(): " << weak.expired() << '\n';
    weak.reset();
    std::cout << "weak.reset();\n"
              << "shared.use_count(): " << shared.use_count() << '\n'
              << "weak.use_count(): " << weak.use_count() << '\n'
              << "weak.expired(): " << weak.expired() << '\n';
}

Salida:

shared.use_count(): 3
weak.use_count(): 3
weak.expired(): false
weak.reset();
shared.use_count(): 3
weak.use_count(): 0
weak.expired(): true

Véase también

verifica si el objeto referenciado ya fue eliminado
(función miembro pública)