libstdc++
auto_ptr.h File Reference

Go to the source code of this file.

Classes

class  std::auto_ptr< _Tp >
 
struct  std::auto_ptr_ref< _Tp1 >
 

Namespaces

 std
 

Typedefs

typedef _Tp element_type
 

Functions

 ~auto_ptr ()
 
template<typename _Tp >
class std::auto_ptr std::_GLIBCXX11_DEPRECATED_SUGGEST ("std::unique_ptr")
 
 auto_ptr (element_type *__p=0) throw ()
 
 auto_ptr (auto_ptr &__a) throw ()
 
template<typename _Tp1 >
 auto_ptr (auto_ptr< _Tp1 > &__a) throw ()
 
 auto_ptr (auto_ptr_ref< element_type > __ref) throw ()
 
element_typeget () const throw ()
 
template<typename _Tp1 >
 operator auto_ptr< _Tp1 > () throw ()
 
template<typename _Tp1 >
 operator auto_ptr_ref< _Tp1 > () throw ()
 
element_typeoperator* () const throw ()
 
element_typeoperator-> () const throw ()
 
auto_ptroperator= (auto_ptr &__a) throw ()
 
template<typename _Tp1 >
auto_ptroperator= (auto_ptr< _Tp1 > &__a) throw ()
 
auto_ptroperator= (auto_ptr_ref< element_type > __ref) throw ()
 
element_typerelease () throw ()
 
void reset (element_type *__p=0) throw ()
 

Variables

struct std::auto_ptr_ref std::_GLIBCXX11_DEPRECATED
 

Detailed Description

This is an internal header file, included by other library headers. Do not attempt to use it directly. Instead, include <memory>.

Definition in file auto_ptr.h.

Typedef Documentation

◆ element_type

typedef _Tp element_type

The pointed-to type.

Definition at line 86 of file auto_ptr.h.

Function Documentation

◆ ~auto_ptr()

_GLIBCXX11_DEPRECATED_SUGGEST::~auto_ptr ( )

When the auto_ptr goes out of scope, the object it owns is deleted. If it no longer owns anything (i.e., get() is NULL), then this has no effect.

The C++ standard says there is supposed to be an empty throw specification here, but omitting it is standard conforming. Its presence can be detected only if _Tp::~_Tp() throws, but this is prohibited. [17.4.3.6]/2

Definition at line 162 of file auto_ptr.h.

◆ auto_ptr() [1/4]

_GLIBCXX11_DEPRECATED_SUGGEST::auto_ptr ( element_type __p = 0)
throw (
)
explicit

An auto_ptr is usually constructed from a raw pointer.

Parameters
__pA pointer (defaults to NULL).

This object now owns the object pointed to by __p.

Definition at line 95 of file auto_ptr.h.

◆ auto_ptr() [2/4]

_GLIBCXX11_DEPRECATED_SUGGEST::auto_ptr ( auto_ptr &  __a)
throw (
)

An auto_ptr can be constructed from another auto_ptr.

Parameters
__aAnother auto_ptr of the same type.

This object now owns the object previously owned by __a, which has given up ownership.

Definition at line 104 of file auto_ptr.h.

◆ auto_ptr() [3/4]

template<typename _Tp1 >
_GLIBCXX11_DEPRECATED_SUGGEST::auto_ptr ( auto_ptr< _Tp1 > &  __a)
throw (
)

An auto_ptr can be constructed from another auto_ptr.

Parameters
__aAnother auto_ptr of a different but related type.

A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.

This object now owns the object previously owned by __a, which has given up ownership.

Definition at line 117 of file auto_ptr.h.

◆ auto_ptr() [4/4]

_GLIBCXX11_DEPRECATED_SUGGEST::auto_ptr ( auto_ptr_ref< element_type __ref)
throw (
)

Automatic conversions.

These operations are supposed to convert an auto_ptr into and from an auto_ptr_ref automatically as needed. This would allow constructs such as

auto_ptr<Derived> func_returning_auto_ptr(.....);
...
auto_ptr<Base> ptr = func_returning_auto_ptr(.....);

But it doesn't work, and won't be fixed. For further details see http://cplusplus.github.io/LWG/lwg-closed.html#463

Definition at line 256 of file auto_ptr.h.

◆ get()

element_type* _GLIBCXX11_DEPRECATED_SUGGEST::get ( ) const
throw (
)

Bypassing the smart pointer.

Returns
The raw pointer being managed.

You can get a copy of the pointer that this object owns, for situations such as passing to a function which only accepts a raw pointer.

Note
This auto_ptr still owns the memory.

Definition at line 203 of file auto_ptr.h.

◆ operator*()

element_type& _GLIBCXX11_DEPRECATED_SUGGEST::operator* ( ) const
throw (
)

Smart pointer dereferencing.

If this auto_ptr no longer owns anything, then this operation will crash. (For a smart pointer, no longer owns anything is the same as being a null pointer, and you know what happens when you dereference one of those...)

Definition at line 173 of file auto_ptr.h.

◆ operator->()

element_type* _GLIBCXX11_DEPRECATED_SUGGEST::operator-> ( ) const
throw (
)

Smart pointer dereferencing.

This returns the pointer itself, which the language then will automatically cause to be dereferenced.

Definition at line 186 of file auto_ptr.h.

◆ operator=() [1/2]

auto_ptr& _GLIBCXX11_DEPRECATED_SUGGEST::operator= ( auto_ptr __a)
throw (
)

auto_ptr assignment operator.

Parameters
__aAnother auto_ptr of the same type.

This object now owns the object previously owned by __a, which has given up ownership. The object that this one used to own and track has been deleted.

Definition at line 128 of file auto_ptr.h.

◆ operator=() [2/2]

template<typename _Tp1 >
auto_ptr& _GLIBCXX11_DEPRECATED_SUGGEST::operator= ( auto_ptr< _Tp1 > &  __a)
throw (
)

auto_ptr assignment operator.

Parameters
__aAnother auto_ptr of a different but related type.

A pointer-to-Tp1 must be convertible to a pointer-to-Tp/element_type.

This object now owns the object previously owned by __a, which has given up ownership. The object that this one used to own and track has been deleted.

Definition at line 146 of file auto_ptr.h.

◆ release()

element_type* _GLIBCXX11_DEPRECATED_SUGGEST::release ( )
throw (
)

Bypassing the smart pointer.

Returns
The raw pointer being managed.

You can get a copy of the pointer that this object owns, for situations such as passing to a function which only accepts a raw pointer.

Note
This auto_ptr no longer owns the memory. When this object goes out of scope, nothing will happen.

Definition at line 217 of file auto_ptr.h.

◆ reset()

void _GLIBCXX11_DEPRECATED_SUGGEST::reset ( element_type __p = 0)
throw (
)

Forcibly deletes the managed object.

Parameters
__pA pointer (defaults to NULL).

This object now owns the object pointed to by __p. The previous object has been deleted.

Definition at line 232 of file auto_ptr.h.