Skip to content

Latest commit

 

History

History
73 lines (55 loc) · 1.86 KB

reset.md

File metadata and controls

73 lines (55 loc) · 1.86 KB

reset

  • memory[meta header]
  • std[meta namespace]
  • shared_ptr[meta class]
  • function[meta id-type]
  • cpp11[meta cpp]
void reset() noexcept;                              // (1)

template <class Y>
void reset(Y* p);                                   // (2)

template <class Y, class Deleter>
void reset(Y* p, Deleter d);                        // (3)

template <class Y, class Deleter, class Allocator>
void reset(Y* p, Deleter d, Allocator a);           // (4)

概要

リソースの所有権を放棄し、新たなリソースの所有権を設定する。

効果

戻り値

なし

#include <memory>

int main()
{
  std::shared_ptr<int> p1(new int(3));
  std::shared_ptr<int> q1 = p1;

  // (1)
  // p1が共有している所有権を放棄する。
  // q1がまだ所有権を持っているので、リソースは解放されない。
  p1.reset();

  std::shared_ptr<int> p2(new int(3));
  std::shared_ptr<int> q2 = p2;

  // (2)
  // p2が現在共有している所有権を放棄し、新たなリソースの所有権を設定する。
  // p2とq2がそれぞれ、異なるリソースを所有することになる。
  p2.reset(new int(2));
}
  • reset[color ff0000]

出力

バージョン

言語

  • C++11

処理系

  • GCC: 4.3.6 [mark verified]
  • Clang: 3.0 [mark verified]
  • ICC: ?
  • Visual C++: 2008 (TR1) [mark verified], 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]