Espacios de nombres
Variantes

std::unique_ptr::release

De cppreference.com
 
 
Biblioteca de servicios
 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
(C++23)
Asignadores de memoria
Recursos de memoria
Almacenamiento no inicializado
Algoritmos de memoria no inicializada
Algoritmos restringidos de memoria no inicializada
Apoyo para recolección de basura
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
Misceláneos
(C++20)
(C++11)
(C++11)
 
 
<tbody> </tbody>
pointer release() noexcept;
(desde C++11)
(constexpr since C++23)

Libera la posesión del objeto gestionado, si la hay.

get() devuelve nullptr después de la llamada.

El llamante es responsable de eliminar el objeto.

Parámetros

(Ninguno)

Valor de retorno

Puntero al objeto gestionado o nullptr si no hubiera ningún objeto gestionado, es decir, el valor que devolvería get() antes de la llamada.

Ejemplo

#include <memory>
#include <iostream>
#include <cassert>

struct Foo {
    Foo() { std::cout << "Foo\n"; }
    ~Foo() { std::cout << "~Foo\n"; }
};

int main()
{
    std::cout << "Creando un nuevo objeto Foo...\n";
    std::unique_ptr<Foo> up(new Foo());

    std::cout << "A punto de liberar un objeto Foo...\n";
    Foo* fp = up.release();

    assert (up.get() == nullptr);
    assert (up == nullptr);

    std::cout << "Objeto Foo ya no se posee por unique_ptr...\n";

    delete fp;
}

Salida:

Creando un nuevo objeto Foo...
Foo
A punto de liberar un objeto Foo...
Objeto Foo ya no se posee por unique_ptr...
~Foo

Véase también

Devuelve un puntero al objeto gestionado.
(función miembro pública) [editar]
Reemplaza el objeto gestionado.
(función miembro pública) [editar]