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


另見