标签: c++ memory-management smart-pointers
我正在使用一个使用原始指针的库。在我的代码中,我使用智能指针。我如何使它们兼容。 例如,我有一个对象
std::unique_ptr<Canvas> m_canvas;
但是库中的函数调用是
f(..., Canvas* c,...);
如何将 m_canvas 传递给 f?
m_canvas
f
答案 0 :(得分:3)
如果函数没有取得所有权,您可以使用 get():
get()
f(m_canvas.get());
如果函数取得所有权,您可以使用 release():
release()
consume(m_canvas.release());