bool expired() const; | (since C++11) |
Checks whether the managed object has already been deleted. Equivalent to use_count() == 0
.
(none).
true
if the managed object has already been deleted, false
otherwise.
noexcept
specification: noexcept
This function is inherently racy if the managed object is shared among threads. In particular, a false result may become stale before it can be used. A true result is reliable.
Demonstrates how expired is used to check validity of the pointer.
#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(); }
Output:
gw is valid gw is expired
creates a shared_ptr that manages the referenced object (public member function) |
|
returns the number of shared_ptr objects that manage the object (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/memory/weak_ptr/expired