名前空間
変種

std::shared_ptr<T>::get

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody>
T* get() const noexcept;
(C++17未満)
element_type* get() const noexcept;
(C++17以上)

格納されているポインタを返します。

引数

(なし)

戻り値

格納されているポインタ。

ノート

shared_ptr は所有権を共有しているオブジェクトとは別のオブジェクトを指すポインタを格納している場合があります。 get() は管理対象のポインタではなく、格納されているポインタを返します。

#include <iostream>
#include <memory>
#include <string_view>

void output(std::string_view msg, int const* pInt)
{
    std::cout << msg << *pInt << "\n";
}

int main()
{
    int* pInt = new int(42);
    std::shared_ptr<int> pShared = std::make_shared<int>(42);

    output("Naked pointer ", pInt);
    // output("Shared pointer ", pShared); // コンパイルエラー
    output("Shared pointer with get() ", pShared.get());

    delete pInt;
}

出力:

Naked pointer 42
Shared pointer with get() 42

関連項目

格納されているポインタを逆参照します
(パブリックメンバ関数) [edit]