|
Boost : |
From: Kevin Atkinson (kevinatk_at_[hidden])
Date: 2000-03-06 15:15:43
On Mon, 6 Mar 2000, Kevin Atkinson wrote:
> template <typename T>
> CopyPtr<T> & CopyPtr<T>::operator= (const CopyPtr<T> & other)
> {
> delete ptr;
> if (other.ptr != 0)
> ptr = new T(*other.ptr);
> else
> ptr = 0;
> return *this;
> }
Here is a more complicated but more efficient operator=:
template <typename T>
CopyPtr<T> & CopyPtr<T>::operator= (const CopyPtr<T> & other)
{
if (other.ptr == 0) {
delete ptr;
ptr = 0;
} else if (ptr == 0) {
if (other.ptr == 0)
ptr = 0;
else
ptr = new T(*other.ptr);
} else {
*ptr = *other.ptr;
}
return *this;
}
--- Kevin Atkinson kevinatk_at_[hidden] http://metalab.unc.edu/kevina/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk