/* -*- C++ -*- */ // $Id$ // Auto_Ptr.i template ACE_INLINE ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr (X *p) : p_ (p) { ACE_TRACE ("ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr"); } template ACE_INLINE ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr (const ACE_Auto_Basic_Ptr &ap) : p_ (ap.release ()) { ACE_TRACE ("ACE_Auto_Basic_Ptr::ACE_Auto_Basic_Ptr"); } template ACE_INLINE ACE_Auto_Basic_Ptr & ACE_Auto_Basic_Ptr::operator= (const ACE_Auto_Basic_Ptr &rhs) { ACE_TRACE ("ACE_Auto_Basic_Ptr::operator="); if (this != &rhs) { delete this->p_; this->p_ = rhs.release (); } return *this; } template ACE_INLINE ACE_Auto_Basic_Ptr::~ACE_Auto_Basic_Ptr (void) { ACE_TRACE ("ACE_Auto_Basic_Ptr::~ACE_Auto_Basic_Ptr"); delete p_; } template ACE_INLINE X & ACE_Auto_Basic_Ptr::operator *() const { ACE_TRACE ("ACE_Auto_Basic_Ptr::operator *()"); return *p_; } template ACE_INLINE X * ACE_Auto_Basic_Ptr::get (void) const { ACE_TRACE ("ACE_Auto_Basic_Ptr::get"); return p_; } template ACE_INLINE X * ACE_Auto_Basic_Ptr::release (void) const { ACE_TRACE ("ACE_Auto_Basic_Ptr::release"); X *old = this->p_; ACE_Auto_Basic_Ptr *fake_this = (ACE_Auto_Basic_Ptr *) this; fake_this->p_ = 0; return old; } #if !defined (ACE_HAS_STANDARD_CPP_LIBRARY) || \ (ACE_HAS_STANDARD_CPP_LIBRARY == 0) template ACE_INLINE auto_ptr::auto_ptr (X *p) : ACE_Auto_Basic_Ptr (p) { ACE_TRACE ("auto_ptr::auto_ptr"); } template ACE_INLINE X * auto_ptr::operator-> () const { ACE_TRACE ("auto_ptr::operator->"); return ACE_Auto_Basic_Ptr::p_; } #endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ template ACE_INLINE ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr (X *p) : p_ (p) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr"); } template ACE_INLINE ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr (const ACE_Auto_Basic_Array_Ptr &ap) : p_ (ap.release ()) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr"); } template ACE_INLINE ACE_Auto_Basic_Array_Ptr & ACE_Auto_Basic_Array_Ptr::operator= (const ACE_Auto_Basic_Array_Ptr &rhs) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::operator="); if (this != &rhs) { delete [] this->p_; this->p_ = rhs.release (); } return *this; } template ACE_INLINE ACE_Auto_Basic_Array_Ptr::~ACE_Auto_Basic_Array_Ptr (void) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::~ACE_Auto_Basic_Array_Ptr"); delete [] p_; } template ACE_INLINE X & ACE_Auto_Basic_Array_Ptr::operator *() const { return *p_; } template ACE_INLINE X & ACE_Auto_Basic_Array_Ptr::operator[](int i) const { return p_[i]; } template ACE_INLINE X * ACE_Auto_Basic_Array_Ptr::get (void) const { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::get"); return p_; } template ACE_INLINE X * ACE_Auto_Basic_Array_Ptr::release (void) const { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::release"); X *old = this->p_; ACE_Auto_Basic_Array_Ptr *fake_this = (ACE_Auto_Basic_Array_Ptr *) this; fake_this->p_ = 0; return old; } template ACE_INLINE ACE_Auto_Array_Ptr::ACE_Auto_Array_Ptr (X *p) : ACE_Auto_Basic_Array_Ptr (p) { ACE_TRACE ("ACE_Auto_Basic_Array_Ptr::ACE_Auto_Basic_Array_Ptr"); } template ACE_INLINE X * ACE_Auto_Array_Ptr::operator->() const { return ACE_Auto_Basic_Array_Ptr::p_; }