名前空間
変種
操作

std::shared_ptr<T>::operator*, std::shared_ptr<T>::operator->

提供: cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ(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++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
T& operator*()constnoexcept;
(1) (C++11以上)
T* operator->()constnoexcept;
(2) (C++11以上)

格納されているポインタを逆参照します。 格納されているポインタがヌルの場合、動作は未定義です。

目次

[編集]引数

(なし)

[編集]戻り値

1) 格納されているポインタを逆参照した結果、すなわち *get()
2) 格納されているポインタ、すなわち get()

[編集]ノート

Tvoid (またはその cv 修飾された型) のとき、関数 (1) が宣言されるかどうかは未規定です。

T が配列型のとき、これらのメンバ関数が宣言されるかどうかは未規定です。

(C++17以上)

未規定であるにも関わらず、これらの関数が宣言される場合、その戻り値の型が何であるかは未規定ですが、その宣言が合法であることは保証されています (定義がそうである保証はありません)。 これにより std::shared_ptr<void> を実体化することが可能となります。

[編集]

#include <iostream>#include <memory>   struct Foo { Foo(int in): a(in){}void print()const{std::cout<<"a = "<< a <<'\n';}int a;};   int main(){auto ptr =std::make_shared<Foo>(10); ptr->print();(*ptr).print();}

出力:

a = 10 a = 10

[編集]関連項目

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