Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::unique_ptr<T,Deleter>::get_deleter

      From cppreference.com
      <cpp‎ |memory‎ |unique ptr
       
       
      Memory management library
      (exposition only*)
      Allocators
      Uninitialized memory algorithms
      Constrained uninitialized memory algorithms
      Memory resources
      Uninitialized storage(until C++20)
      (until C++20*)
      (until C++20*)
      Garbage collector support(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
       
       
      Deleter& get_deleter()noexcept;
      (since C++11)
      (constexpr since C++23)
      const Deleter& get_deleter()constnoexcept;
      (since C++11)
      (constexpr since C++23)

      Returns the deleter object which would be used for destruction of the managed object.

      Contents

      [edit]Parameters

      (none)

      [edit]Return value

      The stored deleter object.

      [edit]Example

      Run this code
      #include <iostream>#include <memory> struct Foo{    Foo(){std::cout<<"Foo() 0x"<<std::hex<<(void*)this<<'\n';}    ~Foo(){std::cout<<"~Foo() 0x"<<std::hex<<(void*)this<<'\n';}}; struct D{int number; void bar(){std::cout<<"call D::bar(), my number is: "<<std::dec<< number<<'\n';} void operator()(Foo* p)const{std::cout<<"call deleter for Foo object 0x"<<std::hex<<(void*)p<<'\n';        delete p;}}; int main(){std::cout<<"main start\n"; std::unique_ptr<Foo, D> up1(new Foo(), D(42));    D& del1= up1.get_deleter();    del1.bar(); std::unique_ptr<Foo, D> up2(new Foo(), D(43));    D& del2= up2.get_deleter();auto* released= up2.release();    del2(released); std::cout<<"main end\n";}

      Output:

      main startFoo() 0x0x90cc30call D::bar(), my number is: 42Foo() 0x0x90cc50call deleter for Foo object 0x0x90cc50~Foo() 0x0x90cc50main endcall deleter for Foo object 0x0x90cc30~Foo() 0x0x90cc30

      [edit]See also

      returns the deleter of specified type, if owned
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/memory/unique_ptr/get_deleter&oldid=160469"

      [8]ページ先頭

      ©2009-2026 Movatter.jp