shared_ptr::reset
Replace besaß Ressourcen.
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);
Parameter
Other
Der Typ des Argumentzeiger gesteuert.D
Der Typ des deleter.ptr
Der Zeiger zu kopieren.dtor
Das zu kopieren deleter.A
Der Typ der Belegungsfunktion verwendet.alloc
Die Belegungsfunktion zu kopieren.
Hinweise
Alle Operatoren dekrementiert den Verweiszähler für die Ressource, die derzeit von *this gehört und weisen *this Besitz zu der Ressource, die von der Operandensequenz genannt wird.Wenn der Verweiszähler auf null liegt, wird die Ressource freigegeben.Wenn ein Operator fehlschlägt, können sie *this unverändert.
Beispiel
// 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);
}
Anforderungen
Header: <memory>
Namespace: std