我有一个数据结构。它提供了用于在其内部集合中添加或删除项目的API。在内部,结构使用std::unique_ptr
来维持每个项目的生命周期。这意味着“添加”项隐式将内存的所有权转移到我的数据结构。
我在这个API的评论中清楚地记录了这一点,但我很想知道;是否有一个事实上的名称或动词我可以附加到我的API,以引起注意这个重要的副作用?
例如:AddItem(Item* item)
似乎并不足以暗示所有权的转移。 RegisterItem
,CreateItem
,TransferItem
似乎都意味着不同的东西。
答案 0 :(得分:3)
传达所有权转移的方式是使用std::unique_ptr
作为参数:
AddItem(std::unique_ptr<Item> item)