名称“weak_ptr::lock()”的原因是什么?
What is the reason for the name `weak_ptr::lock()`?
我们的许多开发人员不明白从 weak_ptr
创建 shared_ptr
与锁定事物有什么关系。在他们看来,术语 'lock' 首先与互斥体相关联。
它本可以被称为 use
或 safeguard
或 lease
或 promote
例如...但是嘿,它不是,这是我们的责任学习标准。
但对他们来说,这是一个非常糟糕的问题,以至于另一个复制了这个习语的 class 不得不重命名,导致重命名后有许多代码行。现在我们为了一点直观性而牺牲了与标准的一致性。
有谁知道 lock()
这个名字是如何选择的?
将共享对象锁定在内存中,防止被删除。
它与锁定互斥锁或类似的东西无关。
我们的许多开发人员不明白从 weak_ptr
创建 shared_ptr
与锁定事物有什么关系。在他们看来,术语 'lock' 首先与互斥体相关联。
它本可以被称为 use
或 safeguard
或 lease
或 promote
例如...但是嘿,它不是,这是我们的责任学习标准。
但对他们来说,这是一个非常糟糕的问题,以至于另一个复制了这个习语的 class 不得不重命名,导致重命名后有许多代码行。现在我们为了一点直观性而牺牲了与标准的一致性。
有谁知道 lock()
这个名字是如何选择的?
将共享对象锁定在内存中,防止被删除。
它与锁定互斥锁或类似的东西无关。