Descrição
Ele retorna um ponteiro para o deletador pertencente a sp.
Declaração
A seguir está a declaração para 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 - É um ponteiro compartilhado.
Valor de retorno
Ele retorna um ponteiro para o deletador pertencente a sp.
Exceções
noexcep - Não lança nenhuma exceção.
Exemplo
No exemplo a seguir, 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;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
[deleter called]
[deleter called]