std::unique_ptr<T,Deleter>::release
提供: cppreference.com
< cpp | memory | unique ptr
pointer release() noexcept; |
(C++11以上) | |
もしあれば、管理対象オブジェクトの所有権を解放します。 呼び出しの後、 get() は nullptr を返します。
目次 |
[編集] 引数
(なし)
[編集] 戻り値
管理対象オブジェクトを指すポインタ、または管理対象オブジェクトがなかったならば nullptr。 つまり、この関数を呼ぶ前であれば get() によって返されたであろう値を返します。
[編集] 例
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; }
出力:
Creating new Foo... Foo About to release Foo... Foo is no longer owned by unique_ptr... ~Foo
[編集] 関連項目
管理対象オブジェクトへのポインタを返します (パブリックメンバ関数) | |
管理対象オブジェクトを置き換えます (パブリックメンバ関数) |