std::bad_weak_ptr (3) - Linux Manuals

std::bad_weak_ptr: std::bad_weak_ptr


std::bad_weak_ptr - std::bad_weak_ptr


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.



Inherited from std::exception

Member functions

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

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


// Run this code

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



See also

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

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