Namespaces
Variants
Actions

std::weak_ptr<T>::expired

From cppreference.com
< cpp‎ | memory‎ | weak ptr
 
 
Memory management library
(exposition only*)
Uninitialized storage (until C++20)
(until C++20*)
(until C++20*)

(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)
 
 
bool expired() const noexcept;
(since C++11)

Equivalent to use_count() == 0. The destructor for the managed object may not yet have been called, but this object's destruction is imminent (or may have already happened).

[edit] Parameters

(none)

[edit] Return value

true if the managed object has already been deleted, false otherwise.

[edit] Notes

If the managed object is shared among threads, it is only meaningful when expired() returns true.

[edit] Example

Demonstrates how expired is used to check validity of the pointer.

Run this code
#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

[edit] See also

creates a shared_ptr that manages the referenced object
(public member function) [edit]
returns the number of shared_ptr objects that manage the object
(public member function) [edit]
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/memory/weak_ptr/expired&oldid=174841"

AltStyle によって変換されたページ (->オリジナル) /