通过引用将unique_ptr传递给函数



我注意到我正在编译的某个库中的行为,这有点出乎意料,想澄清一下。

有一个类具有以下形式的方法:

void notify(Frame & frame);

现在,有一个调用方使用如下unique_ptr

std::unique_ptr <Frame> localFrame (new Frame(rows, cols));

现在,当它调用该方法时,它会:

obj->notify(*localFrame);

因此,这依赖于基础指针到引用的某种隐式转换。

我的问题是,这是跨平台和预期的行为吗?我做这样的事情有什么用吗:

obj->notify(*localFrame->get());
">

一些隐式转换"是std::unique_ptr::operator*,这是一个非常标准的运算符,返回对指向对象的引用。你不需要把它复杂化。

相关内容

  • 没有找到相关文章

最新更新