bad_weak_ptr クラス
weak_ptr が無効であることを示す例外を報告します。
class bad_weak_ptr
: public std::exception {
public:
bad_weak_ptr();
const char *what() throw();
};
解説
このクラスは、weak_ptr クラス 型の引数を持った shared_ptr クラス のコンストラクターからスローされる例外を表します。 メンバー関数 what からは、"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;
}
try
{
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);
}
必要条件
ヘッダー: <memory>
名前空間: std