Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::weak_ptr::expired(3)     C++ Standard Libary    std::weak_ptr::expired(3)

NAME
       std::weak_ptr::expired -	std::weak_ptr::expired

Synopsis
	  bool expired() const noexcept;  (since C++11)

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

Parameters
	  (none)

Return value
	  true	if  the	 managed object	has already been deleted, false	other-
       wise.

Notes
	  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.

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

See also
	  lock	    creates a shared_ptr that manages the referenced object
		    (public member function)
	  use_count  returns  the number of shared_ptr objects that manage the
       object
		    (public member function)

http://cppreference.com		  2022.07.31	     std::weak_ptr::expired(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::weak_ptr::expired&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help