Eventuali duplicati:
How to release pointer from boost::shared_ptr?Staccare un puntatore da un shared_ptr?
Una funzione di mia interfaccia restituisce un puntatore ad un oggetto. L'utente dovrebbe assumere la proprietà di tale oggetto. Non voglio restituire un Boost.shared_ptr, perché non voglio forzare i client a usare boost. Tuttavia, internamente, vorrei memorizzare il puntatore in un parametro shared_ptr per evitare perdite di memoria in caso di eccezioni, ecc. Sembra che non ci sia modo di staccare un puntatore da un puntatore condiviso. Qualche idea qui?
È un'opzione per restituire una copia dell'oggetto condiviso e lasciare che il puntatore intelligente ripulisca l'originale? – TimW
Non proprio, l'oggetto è un videoregistratore con risoluzione HD, quindi la copia è troppo costosa. –
Si noti che C++ 11 ha std :: unique_ptr che può essere utilizzato per memorizzare temporaneamente il puntatore e rilasciarlo al ritorno. – Adversus