std::unique_ptr::release
Aus cppreference.com
<tbody>
</tbody>
pointer release(); |
(seit C++11) | |
Gibt den Besitz des verwalteten Objekts auf, falls vorhanden. get() liefert nach dem Aufruf nullptr.
Parameter
(keine)
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.
Ausnahmen
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
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) | |