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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::bad_weak_ptr - std::bad_weak_ptr

Synopsis
	  Defined in header <memory>
	  class	bad_weak_ptr;	      (since C++11)

	  std::bad_weak_ptr  is	the type of the	object thrown as exceptions by
       the constructors
	  of std::shared_ptr that take std::weak_ptr as	the argument, when the
       std::weak_ptr
	  refers to an already deleted object.

	  std-bad weak ptr-inheritance.svg

					  Inheritance diagram

Member functions
	  constructor	constructs a new bad_weak_ptr object
			(public	member function)
	  operator=	replaces the bad_weak_ptr object
			(public	member function)
	  what		returns	the explanatory	string
			(public	member function)

       std::bad_weak_ptr::bad_weak_ptr

	  bad_weak_ptr()   noexcept;				  (1)	(since
       C++11)
	  bad_weak_ptr(	 const	bad_weak_ptr&  other  )	 noexcept;  (2)	(since
       C++11)

	  Constructs a new bad_weak_ptr	object with an	implementation-defined
       null-terminated
	  byte string which is accessible through what().

	  1) Default constructor.
	  2)  Copy  constructor.  If  *this  and  other	both have dynamic type
       std::bad_weak_ptr
	  then std::strcmp(what(), other.what()) == 0.

Parameters
	  other	- another exception object to copy

       std::bad_weak_ptr::operator=

	  bad_weak_ptr&	 operator=(  const  bad_weak_ptr&  other  )  noexcept;
       (since C++11)

	  Assigns  the	contents  with those of	other. If *this	and other both
       have dynamic type
	  std::bad_weak_ptr then std::strcmp(what(), other.what()) == 0	 after
       assignment.

Parameters
	  other	- another exception object to assign with

Return value
	  *this

       std::bad_weak_ptr::what

	  virtual const	char* what() const noexcept;  (since C++11)

	  Returns the explanatory string.

Parameters
	  (none)

Return value
	  Pointer  to  a  null-terminated string with explanatory information.
       The string is
	  suitable for conversion and display as a std::wstring.  The  pointer
       is guaranteed to
	  be  valid  at	 least until the exception object from which it	is ob-
       tained is destroyed,
	  or until a non-const member function (e.g. copy assignment operator)
       on the
	  exception object is called.

Notes
	  Implementations are allowed but not required to override what().

       Inherited from std::exception

Member functions
	  destructor   destroys	the exception object
	  [virtual]    (virtual	public member function of std::exception)
	  what	       returns an explanatory string
	  [virtual]    (virtual	public member function of std::exception)

Example
       // Run this code

	#include <memory>
	#include <iostream>
	int main()
	{
	    std::shared_ptr<int> p1(new	int(42));
	    std::weak_ptr<int> wp(p1);
	    p1.reset();
	    try	{
		std::shared_ptr<int> p2(wp);
	    } catch(const std::bad_weak_ptr& e)	{
		std::cout << e.what() << '\n';
	    }
	}

Possible output:
	std::bad_weak_ptr

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	   Applied to	       Behavior	as published		  Cor-
       rect behavior
			      calling what on a	default-constructed    the re-
       turn value is
	  LWG 2376 C++11      bad_weak_ptr was required	to return	imple-
       mentation-defined
			      "bad_weak_ptr"

See also
	  shared_ptr smart pointer with	shared object ownership	semantics
	  (C++11)    (class template)
	  weak_ptr   weak reference to an object managed by std::shared_ptr
	  (C++11)    (class template)

http://cppreference.com		  2022.07.31		  std::bad_weak_ptr(3)

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

home | help