名前空間
変種
操作

std::unique_ptr<T,Deleter>::operator<<

提供: cppreference.com
< cpp‎ | memory‎ | unique ptr
 
 
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
(C++17)
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
template <class CharT, class Traits, class Y, class D>

std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os,

                                              const std::unique_ptr<Y, D>& p);
(C++20以上)

p によって管理されているポインタの値を出力ストリーム os に挿入します。

os << p.get() と同等です。

このオーバーロードは、os << p.get() が有効な式である場合にのみ、オーバーロード解決に参加します。

目次

[編集] 引数

os - p を挿入する std::basic_ostream
p - os に挿入されるポインタ

[編集] 戻り値

os

[編集] ノート

std::unique_ptr<Y, D>::pointer が文字型へのポインタ (つまり Ycharchar[] または CharT) の場合、これは operator<<ポインタ自身の値を表示するためのオーバーロードではなく、NULL終端文字列のためのオーバーロードを呼ぶことになります (ポインタが実際にはそのような文字列を指していない場合、未定義動作を発生します)。

[編集]

#include <iostream>
#include <memory>
 
class Foo {};
 
int main()
{
    auto p = std::make_unique<Foo>();
    std::cout << p << '\n';
    std::cout << p.get() << '\n';
}

出力例:

0x6d9028
0x6d9028

[編集] 関連項目

管理対象オブジェクトへのポインタを返します
(パブリックメンバ関数) [edit]