Jolly Roger
Jolly Roger

Reputation: 1134

Smart Pointers compatibility with raw pointers

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 ?

Upvotes: 0

Views: 72

Answers (1)

Jarod42
Jarod42

Reputation: 217283

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());

Upvotes: 3

Related Questions