Skip to content
Related Articles

Related Articles

std::bad_weak_ptr class in C++ with Examples
  • Last Updated : 28 May, 2020

Standard C++ contains several built-in exception classes, std::bad_weak_ptr is one of them. std::bad_weak_ptr is the type of the object thrown as exceptions by the constructors of shared_ptr that take weak_ptr as the argument, when the weak_ptr refers to an already deleted object. Below is the syntax for the same:

Header File:

<memory>

Syntax:

class bad_weak_ptr: public exception;

Note: To make use of std::bad_weak_ptr, one should set up the appropriate try and catch blocks.

Below are the programs to understand the implementation of std::bad_weak_ptr in a better way:



Program 1 :




// C++ code for std::bad_weak_ptr
  
#include <bits/stdc++.h>
  
using namespace std;
  
// main method
int main()
{
    shared_ptr<int> gfg1(new int(75));
  
    weak_ptr<int> wp(gfg1);
    gfg1.reset();
  
    // try block
    try {
        shared_ptr<int> gfg2(wp);
    }
  
    // catch block to handle the errors
    catch (const bad_weak_ptr& gfg) {
        cout << gfg.what() << endl;
    }
    return 0;
}
Output:
bad_weak_ptr

Program 2 :




// C++ code for std::bad_weak_ptr
  
#include <bits/stdc++.h>
  
using namespace std;
  
// main method
int main()
{
    shared_ptr<int> geeksforgeeks(new int(75));
  
    weak_ptr<int> wp(geeksforgeeks);
    geeksforgeeks.reset();
  
    // try block
    try {
        shared_ptr<int
        A_Computer_Science_portal_for_Geeks(wp);
    }
  
    // catch block to handle the errors
    catch (const bad_weak_ptr& gfg) {
        cout << gfg.what() << endl;
    }
}
Output:
bad_weak_ptr

Reference: www.cplusplus.com/reference/memory/bad_weak_ptr/

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
My Personal Notes arrow_drop_up
Recommended Articles
Page :