30 #ifndef _BACKWARD_AUTO_PTR_H
31 #define _BACKWARD_AUTO_PTR_H 1
36 _GLIBCXX_BEGIN_NAMESPACE(std)
45 template<typename _Tp1>
51 auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
52 } _GLIBCXX_DEPRECATED_ATTR;
84 template<
typename _Tp>
122 template<
typename _Tp1>
136 reset(__a.release());
150 template<
typename _Tp1>
154 reset(__a.release());
181 _GLIBCXX_DEBUG_ASSERT(_M_ptr != 0);
194 _GLIBCXX_DEBUG_ASSERT(_M_ptr != 0);
209 get()
const throw() {
return _M_ptr; }
259 : _M_ptr(__ref._M_ptr) { }
264 if (__ref._M_ptr != this->get())
267 _M_ptr = __ref._M_ptr;
272 template<
typename _Tp1>
273 operator auto_ptr_ref<_Tp1>()
throw()
274 {
return auto_ptr_ref<_Tp1>(this->release()); }
276 template<
typename _Tp1>
277 operator auto_ptr<_Tp1>()
throw()
278 {
return auto_ptr<_Tp1>(this->release()); }
279 } _GLIBCXX_DEPRECATED_ATTR;
287 typedef void element_type;
288 } _GLIBCXX_DEPRECATED_ATTR;
290 _GLIBCXX_END_NAMESPACE
element_type * release()
Bypassing the smart pointer.
auto_ptr(auto_ptr< _Tp1 > &__a)
An auto_ptr can be constructed from another auto_ptr.
auto_ptr(auto_ptr &__a)
An auto_ptr can be constructed from another auto_ptr.
void reset(element_type *__p=0)
Forcibly deletes the managed object.
auto_ptr & operator=(auto_ptr< _Tp1 > &__a)
auto_ptr assignment operator.
auto_ptr(element_type *__p=0)
An auto_ptr is usually constructed from a raw pointer.
element_type & operator*() const
Smart pointer dereferencing.
auto_ptr(auto_ptr_ref< element_type > __ref)
Automatic conversions.
A simple smart pointer providing strict ownership semantics.
_Tp element_type
The pointed-to type.
auto_ptr & operator=(auto_ptr &__a)
auto_ptr assignment operator.
element_type * operator->() const
Smart pointer dereferencing.