Public Types | |
typedef _Tp | element_type |
The pointed-to type. | |
Public Member Functions | |
auto_ptr (element_type *__p=0) throw () | |
An auto_ptr is usually constructed from a raw pointer. | |
auto_ptr (auto_ptr &__a) throw () | |
An auto_ptr can be constructed from another auto_ptr. | |
template<typename _Tp1> | auto_ptr (auto_ptr< _Tp1 > &__a) throw () |
An auto_ptr can be constructed from another auto_ptr. | |
auto_ptr & | operator= (auto_ptr &__a) throw () |
auto_ptr assignment operator. | |
template<typename _Tp1> auto_ptr & | operator= (auto_ptr< _Tp1 > &__a) throw () |
auto_ptr assignment operator. | |
~auto_ptr () | |
element_type & | operator * () const throw () |
Smart pointer dereferencing. | |
element_type * | operator-> () const throw () |
Smart pointer dereferencing. | |
element_type * | get () const throw () |
Bypassing the smart pointer. | |
element_type * | release () throw () |
Bypassing the smart pointer. | |
void | reset (element_type *__p=0) throw () |
Forcibly deletes the managed object. | |
auto_ptr (auto_ptr_ref< element_type > __ref) throw () | |
Automatic conversions. | |
auto_ptr & | operator= (auto_ptr_ref< element_type > __ref) throw () |
Automatic conversions. | |
template<typename _Tp1> | operator auto_ptr_ref () throw () |
Automatic conversions. | |
template<typename _Tp1> | operator auto_ptr () throw () |
Automatic conversions. |
The Standard says:
Anauto_ptr
owns the object it holds a pointer to. Copying anauto_ptr
copies the pointer and transfers ownership to the destination. If more than oneauto_ptr
owns the same object at the same time the behavior of the program is undefined.
The uses ofQuoted from [20.4.5]/3.auto_ptr
include providing temporary exception-safety for dynamically allocated memory, passing ownership of dynamically allocated memory to a function, and returning dynamically allocated memory from a function.auto_ptr
does not meet the CopyConstructible and Assignable requirements for Standard Library container elements and thus instantiating a Standard Library container with anauto_ptr
results in undefined behavior.Good examples of what can and cannot be done with auto_ptr can be found in the libstdc++ testsuite.
Definition at line 176 of file memory.
Member Typedef Documentation
|
The pointed-to type.
Definition at line 183 of file memory. Referenced by std::auto_ptr< _Tp >::auto_ptr(), std::auto_ptr< _Tp >::release(), and std::auto_ptr< _Tp >::reset(). |
|
An auto_ptr is usually constructed from a raw pointer.
Definition at line 192 of file memory. References std::auto_ptr< _Tp >::element_type. |
|
An auto_ptr can be constructed from another auto_ptr.
|
|
An auto_ptr can be constructed from another auto_ptr.
This object now owns the object previously owned by a, which has given up ownsership. |
|
When the auto_ptr goes out of scope, the object it owns is deleted. If it no longer owns anything (i.e., |
|
Automatic conversions. These operations convert an auto_ptr into and from an auto_ptr_ref automatically as needed. This allows constructs such as auto_ptr<Derived> func_returning_auto_ptr(.....); ... auto_ptr<Base> ptr = func_returning_auto_ptr(.....); |
|
Bypassing the smart pointer.
Definition at line 296 of file memory. Referenced by std::auto_ptr< _Tp >::operator=(). |
|
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...) |
|
Automatic conversions. These operations convert an auto_ptr into and from an auto_ptr_ref automatically as needed. This allows constructs such as auto_ptr<Derived> func_returning_auto_ptr(.....); ... auto_ptr<Base> ptr = func_returning_auto_ptr(.....); Definition at line 364 of file memory. References std::auto_ptr< _Tp >::release(). |
|
Automatic conversions. These operations convert an auto_ptr into and from an auto_ptr_ref automatically as needed. This allows constructs such as auto_ptr<Derived> func_returning_auto_ptr(.....); ... auto_ptr<Base> ptr = func_returning_auto_ptr(.....); Definition at line 360 of file memory. References std::auto_ptr< _Tp >::release(). |
|
Smart pointer dereferencing. This returns the pointer itself, which the language then will automatically cause to be dereferenced. |
|
Automatic conversions. These operations convert an auto_ptr into and from an auto_ptr_ref automatically as needed. This allows constructs such as auto_ptr<Derived> func_returning_auto_ptr(.....); ... auto_ptr<Base> ptr = func_returning_auto_ptr(.....); Definition at line 349 of file memory. References std::auto_ptr< _Tp >::get(). |
|
auto_ptr assignment operator.
This object now owns the object previously owned by a, which has given up ownsership. The object that this one used to own and track has been deleted. Definition at line 245 of file memory. References std::auto_ptr< _Tp >::reset(). |
|
auto_ptr assignment operator.
Definition at line 227 of file memory. References std::auto_ptr< _Tp >::reset(). |
|
Bypassing the smart pointer.
Definition at line 310 of file memory. References std::auto_ptr< _Tp >::element_type. Referenced by std::auto_ptr< _Tp >::operator auto_ptr(), and std::auto_ptr< _Tp >::operator auto_ptr_ref(). |
|
Forcibly deletes the managed object.
Definition at line 325 of file memory. References std::auto_ptr< _Tp >::element_type. Referenced by std::auto_ptr< _Tp >::operator=(). |