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]