shared_ptr::reset
Zamień właścicielem zasobu.
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);
Parametry
Other
Typ kontrolowane przez wskaźnik argumentu.D
Typ deleter.ptr
Wskaźnik do skopiowania.dtor
Deleter do skopiowania.A
Typ programu przydzielającego.alloc
Program przydzielania do skopiowania.
Uwagi
Wszystkie operatory zmniejszy licznik odniesienia dla zasobu aktualnie własnością *this i przypisać własność zasobu o nazwie przez sekwencję operand *this.Jeśli licznika odwołań spada do zera, zasób jest zwalniana.Jeżeli operator nie pozostawia *this bez zmian.
Przykład
// 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);
}
Wymagania
Nagłówek: <memory>
Obszar nazw: std