Libreria di memoria C ++ get_deleter

Descrizione

Restituisce un puntatore al deleter di proprietà di sp.

Dichiarazione

Di seguito è riportata la dichiarazione per 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;

Parametri

sp - È un puntatore condiviso.

Valore di ritorno

Restituisce un puntatore al deleter di proprietà di sp.

Eccezioni

noexcep - Non genera eccezioni.

Esempio

Nell'esempio seguente viene spiegato lo 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;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

[deleter called]
[deleter called]