std::unique_ptr<T,Deleter>::operator<<
來自 cppreference.com
< cpp | 記憶體 | 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 member function) |