Auto_Ptr.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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. More...
class  auto_ptr< X >
 Implements the draft C++ standard auto_ptr abstraction. More...
class  ACE_Auto_Ptr< X >
 Implements the draft C++ standard auto_ptr abstraction. This version can be used instead of auto_ptr<T>, and obviates the need for the ACE_AUTO_PTR_RESET macro on platforms like VC6 where the auto_ptr<T> is broken. More...
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". More...
class  ACE_Auto_Array_Ptr< X >
 Implements an extension to the draft C++ standard auto_ptr abstraction. More...

Functions

template<typename AUTO_PTR_TYPE , typename PTR_TYPE >
void ACE_auto_ptr_reset (AUTO_PTR_TYPE &ap, PTR_TYPE *p)
 Reset given auto_ptr element to new element.

Detailed Description

Id
Auto_Ptr.h 77304 2007-02-21 22:29:49Z ossama
Author:
Doug Schmidt <schmidt@uci.edu>
Irfan Pyarali <irfan@cs.wustl.edu>
Jack Reeves <jack@fx.com>
Dr. Harald M. Mueller <mueller@garwein.hai.siemens.co.at>

Definition in file Auto_Ptr.h.


Function Documentation

template<typename AUTO_PTR_TYPE , typename PTR_TYPE >
void ACE_auto_ptr_reset ( AUTO_PTR_TYPE &  ap,
PTR_TYPE *  p 
) [inline]

Reset given auto_ptr element to new element.

Some platforms have an older version of auto_ptr support, which lacks reset, and cannot be disabled easily. Portability to these platforms requires use of this function template. This function template also works for the ACE_Auto_{Basic_}Array_Ptr class template, as well.

Definition at line 194 of file Auto_Ptr.h.

00196 {
00197 #if defined (ACE_AUTO_PTR_LACKS_RESET)
00198   // Allow compiler to adjust pointer to potential base class pointer
00199   // of element type found in auto_ptr.
00200   typename AUTO_PTR_TYPE::element_type * const tp = p;
00201   if (tp != ap.get ())
00202     {
00203       ap = AUTO_PTR_TYPE (tp);
00204     }
00205 #else
00206   ap.reset (p);
00207 #endif /* ACE_AUTO_PTR_LACKS_RESET */
00208 }

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Sat Nov 21 23:11:46 2009 for ACE by  doxygen 1.6.1