I am using a library that uses raw pointers. In my code, I use smart pointers. How do I make them compatible. For example, I have an object
std::unique_ptr<Canvas> m_canvas;
But a function call in library is
f(..., Canvas* c,...);
How do I pass m_canvas
to f
?
Answer
If the function doesn’t take ownership, you might use get()
:
f(m_canvas.get());
If the function takes ownership, you might use release()
:
consume(m_canvas.release());