std::bad_weak_ptr (3) - Linux Manuals

std::bad_weak_ptr: std::bad_weak_ptr

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


              constructs the bad_weak_ptr object
constructor (public member function)


 std::bad_weak_ptr ::bad_weak_ptr()


bad_weak_ptr() noexcept;


Constructs a new instance of std::bad_weak_ptr. what() returns an implementation-defined null-terminated byte string.

Parameters


(none)


Inherited from std::exception

Member functions


destructor destroys the exception object
             (virtual public member function of std::exception)
[virtual]


what returns an explanatory string
             (virtual public member function of std::exception)
[virtual]

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';
      }
  }

Output:


  std::bad_weak_ptr

See also


shared_ptr smart pointer with shared object ownership semantics
           (class template)
(C++11)


weak_ptr weak reference to an object managed by std::shared_ptr
           (class template)
(C++11)