命名 API,以暗示内存所有权的转移



我有一个数据结构。 它提供用于在其内部集合中添加或删除项的 API。 在内部,该结构使用std::unique_ptr来维持每个项目的使用寿命。 这意味着"添加"一个项目会隐式地将内存的所有权转移到我的数据结构中。

我已经在这个API的评论中清楚地记录了这一点,但我想知道;是否有一个事实上的名字或动词可以附加到我的API上,以引起人们对这个重要副作用的注意?

例如:AddItem(Item* item)似乎并不充分意味着所有权的转让。 RegisterItemCreateItem TransferItem似乎都暗示着不同的东西。

传达所有权转让的方法是使用std::unique_ptr作为参数:

AddItem(std::unique_ptr<Item> item)

最新更新