c++ - Will unique_ptr take control of any pointer it is passed, regardless of how it was created? -


i have been doing std::vector of unique_ptrs:

m_stuff.push_back(std::unique_ptr<thing> (new derivedthing())); 

this gives me automatic memory deletion when elements in vector removed.

i have scenario whereby else creates heap memory via new , generic pointer exists. now, suppose this:

    m_stuff.push_back(std::unique_ptr<thing> (thingy));     //thingy thing* 

can safely assume this, vector m_stuff has control on thingy such when removed vector, deleted? of course, there possibility of dangling pointer if thingy copied or stored elsewhere different issue.

unique_ptr has nothing magical in it. has jus regular constructor (actually has few) takes pointer of type t , becomes responsible deleting pointee. yes, not care (and can't care) did pointer came from


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -