2 #include "ace/Global_Macros.h"
4 #if !defined (ACE_HAS_CPP17)
6 #if defined (ACE_HAS_ALLOC_HOOKS)
7 # include "ace/Malloc_Base.h"
8 #endif /* ACE_HAS_ALLOC_HOOKS */
10 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
12 template<class X> ACE_INLINE void
13 ACE_Auto_Basic_Ptr<X>::dump () const
15 #if defined (ACE_HAS_DUMP)
16 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::dump");
17 #endif /* ACE_HAS_DUMP */
20 template<class X> ACE_INLINE void
21 ACE_Auto_Basic_Array_Ptr<X>::dump () const
23 #if defined (ACE_HAS_DUMP)
24 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::dump");
25 #endif /* ACE_HAS_DUMP */
28 template<class X> ACE_INLINE
29 ACE_Auto_Basic_Ptr<X>::ACE_Auto_Basic_Ptr (ACE_Auto_Basic_Ptr<X> &rhs)
32 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::ACE_Auto_Basic_Ptr");
35 template<class X> ACE_INLINE X *
36 ACE_Auto_Basic_Ptr<X>::get () const
38 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::get");
42 template<class X> ACE_INLINE X *
43 ACE_Auto_Basic_Ptr<X>::release ()
45 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::release");
51 template<class X> ACE_INLINE void
52 ACE_Auto_Basic_Ptr<X>::reset (X *p)
54 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::reset");
55 if (this->get () != p)
60 template<class X> ACE_INLINE ACE_Auto_Basic_Ptr<X> &
61 ACE_Auto_Basic_Ptr<X>::operator= (ACE_Auto_Basic_Ptr<X> &rhs)
63 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator=");
66 this->reset (rhs.release ());
71 template<class X> ACE_INLINE
72 ACE_Auto_Basic_Ptr<X>::~ACE_Auto_Basic_Ptr ()
74 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::~ACE_Auto_Basic_Ptr");
78 template<class X> ACE_INLINE X &
79 ACE_Auto_Basic_Ptr<X>::operator *() const
81 ACE_TRACE ("ACE_Auto_Basic_Ptr<X>::operator *()");
85 #if defined (ACE_LACKS_AUTO_PTR)
86 template<class X> ACE_INLINE X *
87 auto_ptr<X>::operator-> () const
89 ACE_TRACE ("auto_ptr<X>::operator->");
92 #endif /* ACE_LACKS_AUTO_PTR */
94 template<class X> ACE_INLINE X *
95 ACE_Auto_Ptr<X>::operator-> () const
97 ACE_TRACE ("ACE_Auto_Ptr<X>::operator->");
101 template<class X> ACE_INLINE X *
102 ACE_Auto_Basic_Array_Ptr<X>::get () const
104 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::get");
108 template<class X> ACE_INLINE X *
109 ACE_Auto_Basic_Array_Ptr<X>::release ()
111 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::release");
117 template<class X> ACE_INLINE void
118 ACE_Auto_Basic_Array_Ptr<X>::reset (X *p)
120 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::reset");
121 if (this->get () != p)
122 #if defined (ACE_HAS_ALLOC_HOOKS)
123 ACE_Allocator::instance()->free(this->get ());
125 delete [] this->get ();
126 #endif /* ACE_HAS_ALLOC_HOOKS */
131 template<class X> ACE_INLINE
132 ACE_Auto_Basic_Array_Ptr<X>::ACE_Auto_Basic_Array_Ptr (ACE_Auto_Basic_Array_Ptr<X> &rhs)
133 : p_ (rhs.release ())
135 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::ACE_Auto_Basic_Array_Ptr");
138 template<class X> ACE_INLINE ACE_Auto_Basic_Array_Ptr<X> &
139 ACE_Auto_Basic_Array_Ptr<X>::operator= (ACE_Auto_Basic_Array_Ptr<X> &rhs)
141 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::operator=");
144 this->reset (rhs.release ());
149 template<class X> ACE_INLINE
150 ACE_Auto_Basic_Array_Ptr<X>::~ACE_Auto_Basic_Array_Ptr ()
152 ACE_TRACE ("ACE_Auto_Basic_Array_Ptr<X>::~ACE_Auto_Basic_Array_Ptr");
153 #if defined (ACE_HAS_ALLOC_HOOKS)
154 ACE_Allocator::instance()->free(this->get ());
156 delete [] this->get ();
157 #endif /* ACE_HAS_ALLOC_HOOKS */
160 template<class X> ACE_INLINE X &
161 ACE_Auto_Basic_Array_Ptr<X>::operator *() const
163 return *this->get ();
166 template<class X> ACE_INLINE X &
167 ACE_Auto_Basic_Array_Ptr<X>::operator[](int i) const
169 X *array = this->get ();
173 template<class X> ACE_INLINE X *
174 ACE_Auto_Array_Ptr<X>::operator->() const
179 ACE_END_VERSIONED_NAMESPACE_DECL
181 #endif /* ACE_HAS_CPP17 */