名前空間
変種
操作

std::bad_weak_ptr

提供: cppreference.com
< cpp‎ | memory
 
 
 
動的メモリ管理
未初期化記憶域
(C++17)
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
ヘッダ <memory> で定義
class bad_weak_ptr;
(C++11およびそれ以降)

std::bad_weak_ptr は、 std::weak_ptr がすでに削除されたオブジェクトを参照しているとき、引数として std::weak_ptr を取る std::shared_ptr のコンストラクタによって、例外として投げられるオブジェクトの型です。

cpp/error/exceptionstd-bad weak ptr-inheritance.svg
画像の詳細

継承図

目次

[編集] メンバ関数

コンストラクタ
bad_weak_ptr オブジェクトを構築します
(パブリックメンバ関数)

std::bad_weak_ptr ::bad_weak_ptr()

bad_weak_ptr() noexcept;

std::bad_weak_ptr の新しいインスタンスを構築します。 what() は処理系定義のNULL終端バイト文字列を返します。

引数

(なし)

std::exception から継承

メンバ関数

例外オブジェクトを破棄します
(std::exceptionの仮想パブリックメンバ関数) [edit]
[仮想]
説明文字列を返します
(std::exceptionの仮想パブリックメンバ関数) [edit]

[編集]

#include <memory>
#include <iostream>
int main()
{
    std::shared_ptr<int> p1(new int(42));
    std::weak_ptr<int> wp(p1);
    p1.reset();
    try {
        std::shared_ptr<int> p2(wp);
    } catch(const std::bad_weak_ptr& e) {
        std::cout << e.what() << '\n';
    }
}

出力:

std::bad_weak_ptr

[編集] 関連項目

共有オブジェクト所有権のセマンティクスを持つスマートポインタ
(クラステンプレート) [edit]
(C++11)
std::shared_ptr によって管理されているオブジェクトへの弱参照
(クラステンプレート) [edit]