std::unique_ptr<T,Deleter>::get_deleter (3) - Linux Man Pages

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

NAME

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

Synopsis


Deleter& get_deleter() noexcept; (since C++11)
const Deleter& get_deleter() const noexcept; (since C++11)


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

Parameters


(none)

Return value


The stored deleter object.

Example


// Run this code


  #include <iostream>
  #include <memory>


  struct Foo
  {
      Foo() { std::cout << "Foo...\n"; }
      ~Foo() { std::cout << "~Foo...\n"; }
  };


  struct D
  {
      void bar() { std::cout << "Call deleter D::bar()...\n"; }
      void operator()(Foo* p) const
      {
          std::cout << "Call delete for Foo object...\n";
          delete p;
      }
  };


  int main()
  {
      std::unique_ptr<Foo, D> up(new Foo(), D());
      D& del = up.get_deleter();
      del.bar();
  }

Output:


  Foo...
  Call deleter D::bar()...
  Call delete for Foo object...
  ~Foo...