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]