c++ - 为什么 std::shared_ptr 提供 operator<<?

标签 c++ c++11 shared-ptr

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

最佳答案

因为 << 是一个潜在有用的东西在原始指针上执行。这是安全的,原始指针就是这样做的,shared_ptr在某些情况下应该用于替换原始指针。

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

我可以some_stream >> raw_ptr除非我用 ptr 做些什么没有任何问题;有点奇怪,但没有立即中断。

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

关于c++ - 为什么 std::shared_ptr 提供 operator<<?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42960496/

相关文章:

c++ - 在 Go 应用程序中使用 C(++) 提高性能

c++ - enable_shared_from_this 必须是第一个基类吗?

c++ - 编译时类型的排列 P(N,R)

c++ - 对 shared_ptr 的引用的引用计数

c++ - 来自 curl++ 的 POST 数据不发送

c++ - 双重转换会解决它,但 C++ 中没有这样的事情,对吗?

c++ - 在模板参数列表中跳过较早的隐式模板参数,但不会较晚

c++ - 检查调用shared_from_this()是否有效的方法?

C++ 如何将此类实例的 boost 共享指针传递给嵌套类对象?

c++ - 使用基类对象 C++ 初始化子类?