##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::auto_ptr

From cppreference.com
< cpp‎ | memory

Defined in header `<memory>` |  |
template< class T > class auto_ptr; | (1) | (deprecated)
template<> class auto_ptr<void> | (2) | (deprecated)

`auto_ptr` is a smart pointer that manages an object obtained via new and deletes that object when `auto_ptr` itself is destroyed. It may be used to provide exception safety for dynamically-allocated objects, for passing ownership of dynamically-allocated objects into functions and for returning dynamically-allocated objects from functions.

Copying an `auto_ptr` copies the pointer and transfers ownership to the destination: both copy construction and copy assignment of `auto_ptr` modify their right hand arguments, and the "copy" is not equal to the original. Because of these unusual copy semantics, `auto_ptr` may not be placed in standard containers. std::unique_ptr is preferred for this and other uses.

2) Specialization for type void is provided, it declares the typedef `element_type`, but no member functions.

An additional class template `auto_ptr_ref` is referred to throughout the documentation. It is an implementation-defined type that holds a reference to `auto_ptr`. The implementation is allowed to provide the template with a different name or implement the functions returning it or accepting it as parameter in other ways.

### [edit] Member types

Member type | Definition
element_type | T

### [edit] Member functions

(constructor) | creates a new `auto_ptr` (public member function) [edit]
(destructor) | destroys an `auto_ptr` and the managed object (public member function) [edit]
operator= | transfers ownership from another `auto_ptr` (public member function) [edit]
operator auto_ptr<Y>operator auto_ptr_ref<Y> | converts the managed pointer to a pointer to different type (public member function) [edit]
##### Observers
get | obtains a pointer to the managed object (public member function) [edit]
operator*operator-> | accesses the managed object (public member function) [edit]
##### Modifiers
reset | destroys the managed object (public member function) [edit]
release | releases ownership of the managed object (public member function) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/memory/auto_ptr&oldid=58297"