std::unique_ptr<T,Deleter>::operator<<
来自 cppreference.cn
< 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) |