We recommend using Visual Studio 2017

bad_weak_ptr Class


The latest version of this topic can be found at bad_weak_ptr Class.

Reports bad weak_ptr exception.

class bad_weak_ptr  
 : public std::exception {  
const char *what() throw();


The class describes an exception that can be thrown from the shared_ptr Class constructor that takes an argument of type weak_ptr Class. The member function what returns "bad_weak_ptr".

// std_tr1__memory__bad_weak_ptr.cpp   
// compile with: /EHsc   
#include <memory>   
#include <iostream>   
int main()   
    std::weak_ptr<int> wp;   
    std::shared_ptr<int> sp(new int);   
    wp = sp;   
        std::shared_ptr<int> sp1(wp); // weak_ptr has expired   
    catch (const std::bad_weak_ptr&)   
        std::cout << "bad weak pointer" << std::endl;   
    catch (...)   
        std::cout << "unknown exception" << std::endl;   
    return (0);   

bad weak pointer  

Header: <memory>

Namespace: std

weak_ptr Class