unique_ptr Class
Almacena un puntero a un objeto que pertenece.El objeto es propiedad de ningún otro unique_ptr.Se destruye el objeto cuando se destruye unique_ptr.
template<class Type, class Del = default_delete<Type> >
class unique_ptr {
public:
typedef Type element_type;
typedef Del deleter_type;
typedef T1 pointer;
unique_ptr ();
unique_ptr (
nullptr_t _Nptr
);
explicit unique_ptr (
pointer _Ptr
);
unique_ptr (
pointer _Ptr,
typename conditional<
is_reference<Del>::value,
Del,
typename add_reference<const Del>::type
>::type _Deleter
);
unique_ptr (
pointer _Ptr,
typename remove_reference<Del>::type&& _Deleter
);
unique_ptr (
unique_ptr&& _Right
);
template<class Type2, Class Del2>
unique_ptr (
unique_ptr<Type2, Del2>&& _Right
);
~unique_ptr ();
unique_ptr& operator= (
unique_ptr&& _Right
);
template<class Type2, Class Del2>
unique_ptr& operator= (
unique_ptr<Type2, Del2>&& _Right
);
void swap (
unique_ptr& _Right
);
pointer release ();
void reset (
pointer _Ptr = pointer()
);
pointer get () const;
Type& operator* () const;
pointer operator-> () const;
Del& get_deleter ();
const Del& get_deleter () const;
explicit operator bool () const;
unique_ptr(
const unique_ptr& _Right
) = delete;
unique_ptr& operator=(
const unique_ptr& _Right
) = delete;
private:
pointer stored_ptr; // exposition only
Del stored_deleter; // exposition only
};
Parámetros
_Right
unique_ptr._Nptr
Interfaz rvalue cuyo tipo es std::nullptr_t._Ptr
pointer._Deleter
Una función de deleter enlazado a unique_ptr.
Excepciones
No se genera ninguna excepción por unique_ptr.
Comentarios
La clase de unique_ptr reemplaza auto_ptr, y se puede usar como elemento de los contenedores STL.
unique_ptr administra de forma única a un recurso.Cada objeto de unique_ptr almacena un puntero al objeto que posee o almacena un puntero NULL.Un recurso puede ser propiedad de no más de un objeto de unique_ptr; cuando se destruye un objeto de unique_ptr que posee un recurso determinado, se libera el recurso.Un objeto de unique_ptr no se puede mover, pero copiar; para obtener más información, vea Declarador de referencia Rvalue: &&.
Llamando a libera el recurso un objeto almacenado de deleter de Del cuyas sepa asignan los recursos para unique_ptr determinado.deleter predeterminado default_delete<Type> supone que asignan el recurso indicada por _Ptr con new, y que puede liberar llamando a delete _Ptr.(La especialización parcial unique_ptr<Type[]> de A administra los objetos array asignados con new[], y tiene deleter predeterminado default_delete<Type[]>, especializado para llamar a delete [] _Ptr.)
El puntero almacenado un recurso propio, stored_ptr ha escrito pointer.Es Del::pointer si se define, y Type * si no.El objeto almacenado stored_deleter de deleter no ocupa ningún espacio en el objeto si deleter es sin estado.Observe que Del puede ser un tipo de referencia.
Members
Constructores
Hay siete constructores para unique_ptr. |
Typedefs
Un sinónimo para el parámetro Del de la plantilla. |
|
Un sinónimo para el parámetro Type. de plantilla |
|
Un sinónimo de Del::pointer si se define, si no Type *. |
Funciones miembro
Devuelva stored_ptr. |
|
Devuelve una referencia a stored_deleter. |
|
almacena pointer() en stored_ptr y devuelve su contenido anteriores. |
|
Libera el recurso propio actualmente y aceptan un recurso. |
|
Recurso y deleter de los intercambios con unique_ptr proporcionado. |
Operadores
operator bool |
El operador devuelve un valor de un tipo que pueda convertirse a bool.El resultado de la conversión a bool es true cuando get() != pointer(), si no false. |
operator-> |
La función miembro devuelve stored_ptr. |
operator* |
El returns*stored_ptr. de la función miembro |
Asigna el valor de unique_ptr(o de pointer-type) a unique_ptr actual. |
Requisitos
Encabezado: <memory>
Espacio de nombres: std