std::weak_ptr::expired

From cppreference.com
< cpp‎ | memory‎ | weak ptr
 
 
 
 
 
bool expired() const;
(since C++11)

Checks whether the managed object has already been deleted. Equivalent to use_count() == 0.

Contents

[edit] Parameters

(none)

[edit] Return value

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

[edit] Exceptions

noexcept specification:  
noexcept
  

[edit] Notes

expired() may be faster than use_count().

[edit] Example

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


[edit] See also

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)