为什么 std::shared_ptr 提供运算符<<?

Why does std::shared_ptr provide operator<<?

本文关键字:lt 运算符 std shared ptr 为什么      更新时间:2023-10-16

std::shared_ptr提供了operator<<,它只是写出它的地址。没有operator>>,只记录没有内容的地址。我想知道它在哪些情况下是有用的。

因为这是<<在原始指针上做的潜在有用的事情。 它是安全的,这就是原始指针的作用,在某些情况下,shared_ptr应该用于替换原始指针。

相比之下,>>很少有意义。 与原始指针不同,在共享指针中存储指针值将获得该指针的所有权。

我可以some_stream >> raw_ptr,除非我用ptr做点什么,否则什么都不会出错;有点奇怪,但没有什么会立即中断。

shared_ptr做同样的事情只有在极其深奥的情况下才是安全的。 在这些情况下,必须采取一个步骤,首先填充原始指针,然后将其加载到共享指针中,这似乎不是一个过于繁琐的要求。