std::weak_ptr<T>::reset
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Memory management library
(exposition only*)
(C++11)
(C++23)
(C++11)
(C++17)
(C++11)
(C++11)
(C++20)
(C++20)
(C++17)
(C++11)
(C++17)
(C++20)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
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)
(C++11)
(C++11)
(C++17)
(C++20)
(C++17)
(C++11)
(C++11)
(C++11)
(until C++17*)
(C++11)
(C++17)
(C++26)
(C++26)
(C++11)
(C++11)
(C++11)
(C++23)
(C++23)
(C++11)
(C++20)
(C++11)
(C++11)
(C++20)
(C++26)
std::weak_ptr
Member functions
Modifiers
weak_ptr::reset
Observers
(C++26)
(C++26)
Non-member functions
Helper classes
(C++20)
Deduction guides (C++17)
void reset() noexcept;
(since C++11)
Releases the reference to the managed object. After the call *this manages no object.
Contents
[edit] Parameters
(none)
[edit] Return value
(none)
[edit] Example
Run this code
#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'; }
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