Duplicar posible:
How to release pointer from boost::shared_ptr?Separar un puntero de un shared_ptr?
Una función de mi interfaz devuelve un puntero a un objeto. Se supone que el usuario se apropia de ese objeto. No quiero devolver un Boost.shared_ptr, porque no quiero obligar a los clientes a usar boost. Internamente, sin embargo, me gustaría almacenar el puntero en un shared_ptr para evitar fugas de memoria en caso de excepciones, etc. Parece que no hay forma de separar un puntero de un puntero compartido. Alguna idea aqui?
¿Es una opción devolver una copia del objeto compartido y dejar que el puntero inteligente limpie el original? – TimW
No realmente, el objeto es un videoframe en resolución HD, por lo que copiar es costoso. –
Tenga en cuenta que C++ 11 tiene std :: unique_ptr que se puede usar para almacenar temporalmente el puntero y soltarlo a su regreso. – Adversus