shared_ptr::reset
Sostituzione di una risorsa.
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 controllato dal puntatore argomento.D
Il tipo del deleter.ptr
Il puntatore da copiare.dtor
Il deleter da copiare.A
Il tipo dell'allocatore.alloc
L'allocatore da copiare.
Note
Tutti gli operatori decrementare il conteggio dei riferimenti per la risorsa in 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 *this lascia 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
Header: <memory>
Spazio dei nomi: std