std::unique_ptr<T,Deleter>::operator<<
来自 cppreference.cn
< 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 | - | 一个 std::basic_ostream,用于将 p 插入到其中 |
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
[编辑] 参见
返回指向被管理对象的指针 (公开成员函数) |