public member function
<memory>

std::unique_ptr::release

pointer release() noexcept;
释放指针
通过返回值并将其替换为空指针来释放对其存储的指针的所有权。

此调用不会销毁托管对象,但unique_ptr对象将不再负责删除该对象。必须由其他实体在某个时候负责删除该对象。

要强制销毁指向的对象,请使用成员函数reset或对其执行赋值操作

参数



返回值

调用前由unique_ptr管理的对象的指针。
指针是一个成员类型,定义为指向托管对象类型的指针类型。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// unique_ptr::release example
#include <iostream>
#include <memory>

int main () {
  std::unique_ptr<int> auto_pointer (new int);
  int * manual_pointer;

  *auto_pointer=10;

  manual_pointer = auto_pointer.release();
  // (auto_pointer is now empty)

  std::cout << "manual_pointer points to " << *manual_pointer << '\n';

  delete manual_pointer;

  return 0;
}

输出

manual_pointer points to 10


另见