以下操作对于
谢谢!
std::unique_ptr
和/或 std::shared_ptr
是否是无锁的呢?
- 解引用,例如
read(*myPtr)
或者myPtr->getSomething()
- 移除引用,例如使用
std::move(myUniquePtr)
或当一个std::shared_ptr
超出作用域时。
谢谢!
unique_ptr
中删除并添加到目标unique_ptr
中吗?我在与移动unique_ptr
相关的错误中看到了std::remove_reference
。 - mxduboisunique_ptr
没有必要加锁:它没有显著的争用。对于shared
,您可以将引用移动到目标位置,而无需进行 +1 -1 的混乱...完全不会干扰源控制块内容!不过,目标位置确实需要一个非空的.reset()
,这是需要注意的。 - Yakk - Adam Nevraumont