Biblioteca de memoria C ++ get_deleter

Descripción

Devuelve un puntero al eliminador propiedad de sp.

Declaración

A continuación se muestra la declaración de std :: get_deleter.

template <class D, class T>
  D* get_deleter (const shared_ptr<T>& sp) noexcept;

C ++ 11

template <class D, class T>
  D* get_deleter (const shared_ptr<T>& sp) noexcept;

Parámetros

sp - Es un puntero compartido.

Valor devuelto

Devuelve un puntero al eliminador propiedad de sp.

Excepciones

noexcep - No arroja excepciones.

Ejemplo

En el siguiente ejemplo se explica sobre std :: get_deleter.

#include <iostream>
#include <memory>

struct D {
   void operator()(int* p) {
      std::cout << "[deleter called]\n";
      delete[] p;
   }
};

int main () {
   std::shared_ptr<int> foo (new int[10],D());
   int * bar = new int[20];
   (*std::get_deleter<D>(foo))(bar);
   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

[deleter called]
[deleter called]