mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-14 11:06:57 +01:00
#2172: Add Poco::AutoPtr::reset() and Poco::SharedPtr::reset()
This commit is contained in:
parent
db1ee417ab
commit
2870dd898c
@ -139,6 +139,36 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reset()
|
||||||
|
{
|
||||||
|
if (_ptr)
|
||||||
|
{
|
||||||
|
_ptr->release();
|
||||||
|
_ptr = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset(C* ptr)
|
||||||
|
{
|
||||||
|
assign(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset(C* ptr, bool shared)
|
||||||
|
{
|
||||||
|
assign(ptr, shared);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset(const AutoPtr& ptr)
|
||||||
|
{
|
||||||
|
assign(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class Other>
|
||||||
|
void reset(const AutoPtr<Other>& ptr)
|
||||||
|
{
|
||||||
|
assign<Other>(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
AutoPtr& operator = (C* ptr)
|
AutoPtr& operator = (C* ptr)
|
||||||
{
|
{
|
||||||
return assign(ptr);
|
return assign(ptr);
|
||||||
|
@ -77,7 +77,7 @@ public:
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
~SharedPtr()
|
~SharedPtr() noexcept
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,6 +108,27 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reset() noexcept
|
||||||
|
{
|
||||||
|
_ptr.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset(C* ptr)
|
||||||
|
{
|
||||||
|
_ptr.reset(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset(const SharedPtr& ptr)
|
||||||
|
{
|
||||||
|
assign(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class Other>
|
||||||
|
void reset(const SharedPtr<Other>& ptr)
|
||||||
|
{
|
||||||
|
assign<Other>(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
SharedPtr& operator = (C* ptr)
|
SharedPtr& operator = (C* ptr)
|
||||||
{
|
{
|
||||||
return assign(ptr);
|
return assign(ptr);
|
||||||
|
Loading…
Reference in New Issue
Block a user