cpp/memory/auto ptr

is a smart pointer that manages an object obtained via new expression and deletes that object when 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 copies the pointer and transfers ownership to the destination: both copy construction and copy assignment of  modify their right-hand arguments, and the "copy" is not equal to the original. Because of these unusual copy semantics, may not be placed in standard containers.

@2@ Specialization for type is provided, it declares the typedef, but no member functions.

An additional class template is referred to throughout the documentation. It is an implementation-defined type that holds a reference to. 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.