std::weak_ptr::reset - cppreference.com (original) (raw)

| void reset() noexcept; | | (since C++11) | | ---------------------- | | ------------- |

Releases the reference to the managed object. After the call *this manages no object.

[edit] Parameters

(none)

[edit] Return value

(none)

[edit] Example

#include #include   int main() { auto shared = std::make_shared(), shared2 = shared, shared3 = shared2;   auto weak = std::weak_ptr{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'; }

Output:

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

[edit] See also

| | checks whether the referenced object was already deleted (public member function) [edit] | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |