std::unique_ptr::release
Aus cppreference.com
< cpp | memory | unique ptr
pointer release(); |
(seit C++11) | |
Gibt den Besitz des verwalteten Objekts auf, falls vorhanden. get()
liefert nach dem Aufruf nullptr.
Inhaltsverzeichnis |
[Bearbeiten] Parameter
(keine)
[Bearbeiten] Rückgabewert
Zeiger auf das verwaltete Objekt oder nullptr, wenn kein Objekt verwaltet wurde, dh der Wert, der durch get()
vor dem Aufruf zurückgegeben würde.
[Bearbeiten] Ausnahmen
[Bearbeiten] Beispiel
#include <memory> #include <iostream> 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(); if (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
[Bearbeiten] Siehe auch
liefert einen Zeiger auf das verwaltete Objekt Original: returns a pointer to the managed object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
ersetzt das verwaltete Objekt Original: replaces the managed object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) |