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 :
#include <bits/stdc++.h>
using namespace std;
int main()
{
shared_ptr< int > gfg1( new int (75));
weak_ptr< int > wp(gfg1);
gfg1.reset();
try {
shared_ptr< int > gfg2(wp);
}
catch ( const bad_weak_ptr& gfg) {
cout << gfg.what() << endl;
}
return 0;
}
|
Program 2 :
#include <bits/stdc++.h>
using namespace std;
int main()
{
shared_ptr< int > geeksforgeeks( new int (75));
weak_ptr< int > wp(geeksforgeeks);
geeksforgeeks.reset();
try {
shared_ptr< int >
A_Computer_Science_portal_for_Geeks(wp);
}
catch ( const bad_weak_ptr& gfg) {
cout << gfg.what() << endl;
}
}
|
Reference: www.cplusplus.com/reference/memory/bad_weak_ptr/
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...