【发布时间】:2016-01-13 06:23:40
【问题描述】:
我们的许多开发人员不明白从weak_ptr 创建shared_ptr 与锁定事物有什么关系。在他们看来,“锁”一词首先与互斥锁相关联。
例如,它可能被称为 use 或 safeguard 或 lease 或 promote...但是,事实并非如此,学习标准是我们的责任。
但是对他们来说,这是一个非常糟糕的问题,以至于不得不重命名另一个复制这个习语的类,导致大量代码行跟随重命名。现在我们牺牲了与标准的一致性,只是为了一点点直观性。
有人知道lock()这个名字是怎么选择的吗?
【问题讨论】:
-
很难想出一个既有用又通用又有用的术语。 “使用”一词根本没有提供任何信息。你不妨称它为“do_something”。
-
我完全不相信这个问题是 SO 的主题。关闭的原因之一是“主要基于意见”——就是这样。还有一个问题是“为什么人们在 boost::weak_ptr 最初开发时会做出这个选择?”从那时起,答案一直是“向后兼容”。
-
@Martin - 同意这不是一个完美的问题,但这里有些人可能已经“去过那里”并且实际上知道第一手的答案。
-
@MartinBonner 我的情况是我无法向其他开发人员解释为什么他们应该通过它的名称理解这个函数的含义。我会尝试改写这个问题。
标签: c++ shared-ptr terminology naming weak-ptr