似乎在某种程度上有一种小小的趋势来命名事物std::unique_XXX
。 std::unique_ptr
是仅应由一个使用者处理的智能指针,因此在这种情况下“唯一”是有意义的。
但是至少有其他班级获得了unique
这个绰号,但我不确定为什么。为什么叫std::unique_lock
呢?相对于std::lock_guard
,它不是唯一或多或少的,对吧?
我想我缺少什么。
我不记得其他班级也效仿了,但我似乎记得我们还有更多班级。也许只是std::unique_lock
;我忘了。但是,如果还有其他std::unique_XXX
类名称,为什么还要命名呢?
锁卫在创建时被锁定,在破坏时被解锁。您无法移动或复制它,因此无法转移或共享对锁定资源的访问权限。
A std::unique_lock
是可移动的(不可复制)。因此,您可以将访问权限转移到基础资源。就像您转让std::unique_ptr
的所有权一样。
虽然我不能真正评论为什么选择命名方案,因为我不在那儿并且还没有阅读有关该主题的论文/讨论...两者之间的相似性至少足以让我明白说“是的,我知道他们为什么这样做了。” :)