【发布时间】:2013-03-11 03:45:32
【问题描述】:
将 unique_ptr 的引用传递给函数是一种不好的用法吗?
void Foo(std::unique_ptr<T>& rT)
{
...
}
【问题讨论】:
-
完全没有上下文?是的,这很糟糕。唯一指针应该只暴露给那些关心托管对象所有权的人,这在像你这样的代码中很少发生。
-
最好详细解释您实际在做什么,并询问您是否使用了一种好的方法。
-
有什么选择?
-
您在这里的确切目的是什么?如果您试图让
Foo访问您的unique_ptr指向的内容,请接受const T&或在极少数情况下接受T&(可能用于类似交换功能)。如果Foo应该获得所有权,请按值接受unique_ptr。然后Foo的调用者可以将move他的unique_ptr转为Foo。
标签: c++