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

Naming APIs, to imply transfer of memory ownership?

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

我在 API 的评论中清楚地记录了这一点,但我想知道;有没有我可以附加到我的 API 上的实际名称或动词,以提醒人们注意这个重要的副作用?

例如:AddItem(Item* item)似乎并没有充分暗示所有权的转移。 RegisterItemCreateItemTransferItem似乎都暗示着不同的东西。

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

AddItem(std::unique_ptr<Item> item)