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

ACE_Auto_Basic_Array_Ptr< X > Class Template Reference

Implements an extension to the draft C++ standard auto_ptr abstraction. This class allows one to work on non-object (basic) types that must be treated as an array, e.g., deallocated via "delete [] foo". More...

#include <Auto_Ptr.h>

Inheritance diagram for ACE_Auto_Basic_Array_Ptr< X >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef X element_type

Public Member Functions

 ACE_Auto_Basic_Array_Ptr (X *p=0)
 ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr< X > &ap)
ACE_Auto_Basic_Array_Ptr< X > & operator= (ACE_Auto_Basic_Array_Ptr< X > &rhs)
 ~ACE_Auto_Basic_Array_Ptr (void)
X & operator* () const
X & operator[] (int i) 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_Array_Ptr< X >

Implements an extension to the draft C++ standard auto_ptr abstraction. This class allows one to work on non-object (basic) types that must be treated as an array, e.g., deallocated via "delete [] foo".

Definition at line 134 of file Auto_Ptr.h.


Member Typedef Documentation

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

Reimplemented in ACE_Auto_Array_Ptr< X >.

Definition at line 137 of file Auto_Ptr.h.


Constructor & Destructor Documentation

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

Definition at line 140 of file Auto_Ptr.h.

: p_ (p) {}

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

Definition at line 128 of file Auto_Ptr.inl.

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

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

Definition at line 146 of file Auto_Ptr.inl.

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


Member Function Documentation

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

Dump the state of an object.

Definition at line 18 of file Auto_Ptr.inl.

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

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

Definition at line 103 of file Auto_Ptr.inl.

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

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

Definition at line 153 of file Auto_Ptr.inl.

{
  return *this->get ();
}

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

Definition at line 135 of file Auto_Ptr.inl.

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

template<class X >
X & ACE_Auto_Basic_Array_Ptr< X >::operator[] ( int  i  )  const [inline]

Definition at line 159 of file Auto_Ptr.inl.

{
  X *array = this->get ();
  return array[i];
}

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

Definition at line 110 of file Auto_Ptr.inl.

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

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

Definition at line 119 of file Auto_Ptr.inl.

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


Member Data Documentation

Declare the dynamic allocation hooks.

Definition at line 157 of file Auto_Ptr.h.

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

Definition at line 160 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