std::unique_ptr<T,Deleter>::release (3) - Linux Manuals
std::unique_ptr<T,Deleter>::release: std::unique_ptr<T,Deleter>::release
Command to display std::unique_ptr<T,Deleter>::release
manual in Linux: $ man 3 std::unique_ptr<T,Deleter>::release
NAME
std::unique_ptr<T,Deleter>::release - std::unique_ptr<T,Deleter>::release
Synopsis
pointer release() noexcept; (since C++11)
Releases the ownership of the managed object if any. get() returns nullptr after the call.
Parameters
(none)
Return value
Pointer to the managed object or nullptr if there was no managed object, i.e. the value which would be returned by get() before the call.
Example
// Run this code
#include <memory>
#include <iostream>
#include <cassert>
struct Foo {
Foo() { std::cout << "Foo\n"; }
~Foo() { std::cout << "~Foo\n"; }
};
int main()
{
std::cout << "Creating new Foo...\n";
std::unique_ptr<Foo> up(new Foo());
std::cout << "About to release Foo...\n";
Foo* fp = up.release();
assert (up.get() == nullptr);
std::cout << "Foo is no longer owned by unique_ptr...\n";
delete fp;
}
Output:
Creating new Foo...
Foo
About to release Foo...
Foo is no longer owned by unique_ptr...
~Foo
See also
returns a pointer to the managed object
get (public member function)
replaces the managed object
reset (public member function)
Pages related to std::unique_ptr<T,Deleter>::release
- std::unique_ptr<T,Deleter>::reset (3) - std::unique_ptr<T,Deleter>::reset
- std::unique_ptr<T,Deleter>::get (3) - std::unique_ptr<T,Deleter>::get
- std::unique_ptr<T,Deleter>::get_deleter (3) - std::unique_ptr<T,Deleter>::get_deleter
- std::unique_ptr<T,Deleter>::operator<< (3) - std::unique_ptr<T,Deleter>::operator<<
- std::unique_ptr<T,Deleter>::operator= (3) - std::unique_ptr<T,Deleter>::operator=
- std::unique_ptr<T,Deleter>::operator[] (3) - std::unique_ptr<T,Deleter>::operator[]
- std::unique_ptr<T,Deleter>::operatorbool (3) - std::unique_ptr<T,Deleter>::operatorbool
- std::unique_ptr<T,Deleter>::swap (3) - std::unique_ptr<T,Deleter>::swap
- std::unique_ptr<T,Deleter>::unique_ptr (3) - std::unique_ptr<T,Deleter>::unique_ptr
- std::unique_ptr<T,Deleter>::~unique_ptr (3) - std::unique_ptr<T,Deleter>::~unique_ptr
- std::unique_ptr (3) - std::unique_ptr
- std::unique_copy (3) - std::unique_copy
- std::unique_lock (3) - std::unique_lock
- std::unique_lock<Mutex>::lock (3) - std::unique_lock<Mutex>::lock
- std::unique_lock<Mutex>::mutex (3) - std::unique_lock<Mutex>::mutex
- std::unique_lock<Mutex>::operator= (3) - std::unique_lock<Mutex>::operator=