Open In App
Related Articles

std::bad_weak_ptr class in C++ with Examples

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report
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/

Last Updated : 28 May, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads