Public Types | Public Member Functions | Public Attributes | Protected Attributes

ACE_Auto_Basic_Ptr< X > Class Template Reference

Implements the draft C++ standard auto_ptr abstraction. This class allows one to work on non-object (basic) types. More...

#include <Auto_Ptr.h>

Inheritance diagram for ACE_Auto_Basic_Ptr< X >:
Inheritance graph
[legend]
Collaboration diagram for ACE_Auto_Basic_Ptr< X >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef X element_type

Public Member Functions

 ACE_Auto_Basic_Ptr (X *p=0)
 ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr< X > &ap)
ACE_Auto_Basic_Ptr< X > & operator= (ACE_Auto_Basic_Ptr< X > &rhs)
 ~ACE_Auto_Basic_Ptr (void)
X & operator* () const
X * get (void) const
X * release (void)
void reset (X *p=0)
void dump (void) const
 Dump the state of an object.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Protected Attributes

X * p_

Detailed Description

template<typename X>
class ACE_Auto_Basic_Ptr< X >

Implements the draft C++ standard auto_ptr abstraction. This class allows one to work on non-object (basic) types.

Definition at line 45 of file Auto_Ptr.h.


Member Typedef Documentation

template<typename X>
typedef X ACE_Auto_Basic_Ptr< X >::element_type

Reimplemented in auto_ptr< X >, ACE_Auto_Ptr< X >, and ACE_Auto_Ptr< ACE_CString >.

Definition at line 48 of file Auto_Ptr.h.


Constructor & Destructor Documentation

template<typename X>
ACE_Auto_Basic_Ptr< X >::ACE_Auto_Basic_Ptr ( X *  p = 0  )  [inline, explicit]

Definition at line 51 of file Auto_Ptr.h.

: p_ (p) {}

template<class X>
ACE_Auto_Basic_Ptr< X >::ACE_Auto_Basic_Ptr ( ACE_Auto_Basic_Ptr< X > &  ap  )  [inline]

Definition at line 26 of file Auto_Ptr.inl.

  : p_ (rhs.release ())
{
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::ACE_Auto_Basic_Ptr");
}

template<class X >
ACE_Auto_Basic_Ptr< X >::~ACE_Auto_Basic_Ptr ( void   )  [inline]

Definition at line 69 of file Auto_Ptr.inl.

{
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::~ACE_Auto_Basic_Ptr");
  delete this->get ();
}


Member Function Documentation

template<class X >
void ACE_Auto_Basic_Ptr< X >::dump ( void   )  const [inline]

Dump the state of an object.

Definition at line 10 of file Auto_Ptr.inl.

{
#if defined (ACE_HAS_DUMP)
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::dump");
#endif /* ACE_HAS_DUMP */
}

template<class X >
X * ACE_Auto_Basic_Ptr< X >::get ( void   )  const [inline]

Definition at line 33 of file Auto_Ptr.inl.

{
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::get");
  return this->p_;
}

template<class X >
X & ACE_Auto_Basic_Ptr< X >::operator* (  )  const [inline]

Definition at line 76 of file Auto_Ptr.inl.

{
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator *()");
  return *this->get ();
}

template<class X>
ACE_Auto_Basic_Ptr< X > & ACE_Auto_Basic_Ptr< X >::operator= ( ACE_Auto_Basic_Ptr< X > &  rhs  )  [inline]

Definition at line 58 of file Auto_Ptr.inl.

{
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator=");
  if (this != &rhs)
    {
      this->reset (rhs.release ());
    }
  return *this;
}

template<class X >
X * ACE_Auto_Basic_Ptr< X >::release ( void   )  [inline]

Definition at line 40 of file Auto_Ptr.inl.

{
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::release");
  X *old = this->p_;
  this->p_ = 0;
  return old;
}

template<class X>
void ACE_Auto_Basic_Ptr< X >::reset ( X *  p = 0  )  [inline]

Definition at line 49 of file Auto_Ptr.inl.

{
  ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::reset");
  if (this->get () != p)
    delete this->get ();
  this->p_ = p;
}


Member Data Documentation

template<typename X>
ACE_Auto_Basic_Ptr< X >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 67 of file Auto_Ptr.h.

template<typename X>
X* ACE_Auto_Basic_Ptr< X >::p_ [protected]

Definition at line 70 of file Auto_Ptr.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines