Пространства имён
Варианты
Действия

std::unique_ptr::release

Материал из cppreference.com
< cpp‎ | memory‎ | unique ptr

 
 
 
 
 
pointer release();
(начиная с C++11)
Релизы собственности на управляемый объект, если таковой имеется. get() nullptr возвращается после вызова.
Оригинал:
Releases the ownership of the managed object if any. get() returns nullptr after the call.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Параметры

(Нет)
Оригинал:
(none)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Возвращаемое значение

Указатель на управляемый объект или nullptr если бы не было управляемого объекта, то есть значение, которое будет возвращено по get() перед вызовом.
Оригинал:
Pointer to the managed object or nullptr if there was no managed object, i.e. the value which would be returned by get() before the call.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Исключения

noexcept-спецификация:  
noexcept
  (начиная с C++11)

[править] Пример

#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;
}

Вывод:

Creating new Foo...
Foo
About to release Foo...
Foo is no longer owned by unique_ptr...
~Foo

[править] См. также

возвращает указатель на управляемый объект
Оригинал:
returns a pointer to the managed object
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
заменяет управляемого объекта
Оригинал:
replaces the managed object
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]