FreeBSD Manual Pages
std::unique_ptr::release(3) C++ Standard Libary std::unique_ptr::release(3) NAME std::unique_ptr::release - std::unique_ptr::release Synopsis pointer release() noexcept; (since C++11) (constexpr since C++23) Releases the ownership of the managed object, if any. get() returns nullptr after the call. The caller is responsible for cleaning up the object (e.g. by use of get_deleter()). Parameters (none) Return value Pointer to the managed object or nullptr if there was no managed ob- ject, i.e. the value which would be returned by get() before the call. Example // Run this code #include <cassert> #include <iostream> #include <memory> struct Foo { Foo() { std::cout << "Foo\n"; } ~Foo() { std::cout << "~Foo\n"; } }; // Ownership of the Foo resource is transferred when calling this function void legacy_api(Foo* owning_foo) { std::cout << __func__ << '\n'; // [legacy code that no one understands or dares touch anymore] // [...] delete owning_foo; } int main() { std::unique_ptr<Foo> managed_foo(new Foo); // [code that might return or throw or some such] // [...] legacy_api(managed_foo.release()); assert(managed_foo == nullptr); } Output: Foo legacy_api ~Foo See also get returns a pointer to the managed object (public member function) get_deleter returns the deleter that is used for destruction of the managed object (public member function) reset replaces the managed object (public member function) http://cppreference.com 2024.06.10 std::unique_ptr::release(3)
NAME | Synopsis | Parameters | Return value | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::unique_ptr::release&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
