shared_ptr::reset
Risorsa personalizzata Replace.
void reset();
template<class Other>
void reset(Other *ptr;);
template<class Other, class D>
void reset(Other *ptr, D dtor);
template<class Other, class D, class A>
void reset(Other *ptr, D dtor, A alloc);
Parametri
Other
Il tipo esaminato il puntatore dell'argomento.D
Il tipo di deleter.ptr
Il puntatore da copiare.dtor
Il deleter da copiare.A
Il tipo di allocatore.alloc
l'allocatore da copiare.
Note
Tutti gli operatori diminuire il conteggio dei riferimenti per la risorsa attualmente di proprietà da *this e assegnare la proprietà della risorsa denominata dalla sequenza di operando a *this.Se il conteggio dei riferimenti esegue il fallback a zero, la risorsa viene rilasciata.Se un operatore non riesce possibile *this invariato.
Esempio
// std_tr1__memory__shared_ptr_reset.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
struct deleter
{
void operator()(int *p)
{
delete p;
}
};
int main()
{
std::shared_ptr<int> sp(new int(5));
std::cout << "*sp == " << std::boolalpha
<< *sp << std::endl;
sp.reset();
std::cout << "(bool)sp == " << std::boolalpha
<< (bool)sp << std::endl;
sp.reset(new int(10));
std::cout << "*sp == " << std::boolalpha
<< *sp << std::endl;
sp.reset(new int(15), deleter());
std::cout << "*sp == " << std::boolalpha
<< *sp << std::endl;
return (0);
}
Requisiti
intestazione: <memory>
Spazio dei nomi: deviazione standard