std:: auto_ptr
|
|
|
|
Defined in header
<memory>
|
||
template
<
class
T
>
class
auto_ptr
;
|
(1) |
(deprecated in C++11)
(removed in C++17) |
template
<>
class
auto_ptr
<
void
>
;
|
(2) |
(deprecated in C++11)
(removed in C++17) |
auto_ptr
is a smart pointer that manages an object obtained via
new expression
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.
(since C++11)
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.
Member types
Member type | Definition |
element_type | T |
Member functions
creates a new
auto_ptr
(public member function) |
|
destroys an
auto_ptr
and the managed object
(public member function) |
|
transfers ownership from another
auto_ptr
(public member function) |
|
converts the managed pointer to a pointer to different type
(public member function) |
|
Observers |
|
returns a pointer to the managed object
(public member function) |
|
accesses the managed object
(public member function) |
|
Modifiers |
|
replaces the managed object
(public member function) |
|
releases ownership of the managed object
(public member function) |