shared_ptr::reset
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);
參數
Other
引數指標控制項的型別。D
deleter 類型。ptr
複製的指標。dtor
要複製的 deleter。A
配置器類型。alloc
要複製的配置器。
備註
運算子都會以 *this 目前擁有之資源的參考次數 (Reference Count) 並指定運算元序列命名之資源的擁有權。 *this。 如果參考計數小於零,會釋放資源。 如果運算子失敗 *this 它會保持不變。
範例
// 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);
}
需求
標題: <memory>
命名空間: std