智能指针与原始指针的兼容性

时间:2021-03-11 07:03:36

标签: c++ memory-management smart-pointers

我正在使用一个使用原始指针的库。在我的代码中,我使用智能指针。我如何使它们兼容。 例如,我有一个对象

std::unique_ptr<Canvas> m_canvas;

但是库中的函数调用是

f(..., Canvas* c,...);

如何将 m_canvas 传递给 f

1 个答案:

答案 0 :(得分:3)

如果函数没有取得所有权,您可以使用 get()

f(m_canvas.get());

如果函数取得所有权,您可以使用 release():

consume(m_canvas.release());
相关问题