std::unique_ptr<T,Deleter>:: release
From cppreference.net
<
cpp
|
memory
|
unique ptr
C++
Memory management library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::unique_ptr
| Member functions | ||||
| Modifiers | ||||
|
unique_ptr::release
|
||||
| Observers | ||||
| Non-member functions | ||||
|
(C++14)
(C++20)
|
||||
|
(until C++20)
(C++20)
|
||||
|
(C++20)
|
||||
| Helper classes | ||||
|
pointer release
(
)
noexcept
;
|
(desde C++11)
(constexpr desde C++23) |
|
Libera la propiedad del objeto gestionado, si existe alguno.
get() devuelve nullptr después de la llamada.
La persona que llama es responsable de limpiar el objeto (por ejemplo, mediante el uso de get_deleter() ).
Contenidos |
Parámetros
(ninguno)
Valor de retorno
Puntero al objeto gestionado o nullptr si no había ningún objeto gestionado, es decir, el valor que sería devuelto por get() antes de la llamada.
Ejemplo
Ejecutar este código
#include <cassert> #include <iostream> #include <memory> struct Foo { Foo() { std::cout << "Foo\n"; } ~Foo() { std::cout << "~Foo\n"; } }; // La propiedad del recurso Foo se transfiere al llamar esta función void legacy_api(Foo* owning_foo) { std::cout << __func__ << '\n'; // [código heredado que nadie entiende o se atreve a modificar] // [...] delete owning_foo; } int main() { std::unique_ptr<Foo> managed_foo(new Foo); // [código que podría retornar o lanzar una excepción o algo similar] // [...] legacy_api(managed_foo.release()); assert(managed_foo == nullptr); }
Salida:
Foo legacy_api ~Foo
Véase también
|
devuelve un puntero al objeto gestionado
(función miembro pública) |
|
|
devuelve el deleter que se utiliza para la destrucción del objeto gestionado
(función miembro pública) |
|
|
reemplaza el objeto gestionado
(función miembro pública) |