std::unique_ptr<T,Deleter>::operator<<
From cppreference.com
< cpp | memory | unique ptr
| template< class CharT, class Traits, class Y, class D > std::basic_ostream<CharT, Traits>& operator<<( std::basic_ostream<CharT, Traits>& os, |
(C++20以降) | |
pが管理するポインタの値を、出力ストリームosに挿入します。
os << p.get()と等価です。
os << p.get()が有効な式である場合にのみ、オーバーロード解決に参加します。
目次 |
[編集] パラメータ
| os | - | pを挿入するstd::basic_ostream |
| p | - | osに挿入されるポインタ |
[編集] 戻り値
os
[編集] 注記
もしstd::unique_ptr<Y, D>::pointerが文字型へのポインタ(例えば、Yがchar([])またはCharT([])の場合)であると、ポインタの値自体を印刷するためのオーバーロードの代わりに、ヌル終端文字列ストリームのoperator<<のオーバーロードが呼び出される可能性があります(ポインタが実際にそのような文字列を指していない場合、未定義の動作を引き起こします)。
[編集] 例
このコードを実行
#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
[編集] 関連項目
| 管理対象オブジェクトへのポインタを返す (public メンバ関数) |