owner_ptr& operator=(const owner_ptr<T[]>& rhs)
{
private_pass(rhs.get_ownership());
return *this;
}
void pass(T* ptr = NULL)
{
private_pass(ptr);
}
private:
void private_pass(T* ptr)
{
if (p != ptr)
{
T* tmp = p;
p = ptr;
delete[] tmp;
}
}