作者:闫小芽_209 | 来源:互联网 | 2022-12-10 12:40
使用std::unique_ptr&
而不是std::unique_ptr
?例如,在函数参数中?
1> Caleth..:
有几种不同的情况
您想将所有权转移到该功能
使用 std::unique_ptr
您希望允许该函数修改指针
使用 std::unique_ptr &
您希望允许该函数修改指针
T &
在呼叫站点使用和取消引用
如果指针可能为null,则使用T *
并unique_ptr::get
在调用站点调用
您希望允许该函数观察指针
const T &
在呼叫站点使用和取消引用
如果指针可能为null,则使用const T *
并unique_ptr::get
在调用站点调用
您希望允许该函数具有指针的副本
T
在呼叫站点使用和取消引用
你有一个ranged-for循环(或
调用)集合unique_ptr
,并希望观察值,并没有ranges::indirect
(或类似)
使用auto &
,并知道它被推断为std::unique_ptr &
(或者const std::unique_ptr &
如果集合是const
),所以你必须在循环体中取消引用