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/