Compartir a través de


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

Ee410601.collapse_all(es-es,VS.110).gifConstructores

unique_ptr::unique_ptr

Hay siete constructores para unique_ptr.

Ee410601.collapse_all(es-es,VS.110).gifTypedefs

deleter_type

Un sinónimo para el parámetro Del de la plantilla.

element_type

Un sinónimo para el parámetro Type. de plantilla

puntero

Un sinónimo de Del::pointer si se define, si no Type *.

Ee410601.collapse_all(es-es,VS.110).gifFunciones miembro

unique_ptr::get

Devuelva stored_ptr.

unique_ptr::get_deleter

Devuelve una referencia a stored_deleter.

unique_ptr::release

almacena pointer() en stored_ptr y devuelve su contenido anteriores.

unique_ptr::reset

Libera el recurso propio actualmente y aceptan un recurso.

unique_ptr::swap

Recurso y deleter de los intercambios con unique_ptr proporcionado.

Ee410601.collapse_all(es-es,VS.110).gifOperadores

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

unique_ptr operator=

Asigna el valor de unique_ptr(o de pointer-type) a unique_ptr actual.

Requisitos

Encabezado: <memory>

Espacio de nombres: std

Vea también

Referencia

<memory>

Otros recursos

miembros unique_ptr