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
;
|
(seit C++11)
(constexpr seit C++23) |
|
Gibt die Eigentümerschaft des verwalteten Objekts frei, falls vorhanden.
get() gibt nach dem Aufruf nullptr zurück.
Der Aufrufer ist für die Bereinigung des Objekts verantwortlich (z.B. durch Verwendung von get_deleter() ).
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
Zeiger auf das verwaltete Objekt oder nullptr falls kein verwaltetes Objekt vorhanden war, d.h. der Wert, der vor dem Aufruf von get() zurückgegeben worden wäre.
Beispiel
Diesen Code ausführen
#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); }
Ausgabe:
Foo legacy_api ~Foo
Siehe auch
|
gibt einen Zeiger auf das verwaltete Objekt zurück
(öffentliche Elementfunktion) |
|
|
gibt den Deleter zurück, der für die Zerstörung des verwalteten Objekts verwendet wird
(öffentliche Elementfunktion) |
|
|
ersetzt das verwaltete Objekt
(öffentliche Elementfunktion) |