Compartilhar via


unique_ptr Class

Armazena um ponteiro para um propriedade do objeto.O objeto pertençe nenhum outro unique_ptr.O objeto é destruído quando unique_ptr é destruído.

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
    rvalue de tipo std::nullptr_t.

  • _Ptr
    pointer.

  • _Deleter
    Uma função de deleter que está associada a unique_ptr.

Exceções

Nenhuma exceção é gerada por unique_ptr.

Comentários

A classe de unique_ptr substitui auto_ptr, e pode ser usado como um elemento de recipiente de STL.

unique_ptr gerencia como um recurso.Cada objeto de unique_ptr armazena um ponteiro ao objeto que possui ou armazena um ponteiro nulo.Um recurso pode não ser possuído por mais de um objeto de unique_ptr ; quando um objeto de unique_ptr que possua um recurso específico é destruído, o recurso é liberado.Um objeto de unique_ptr não pode ser movido, mas ser copiado; para obter mais informações, consulte Declarador de referência Rvalue: & &.

O recurso é liberado chamando um objeto armazenado de deleter de tipo Del sabe que os recursos são atribuídos para unique_ptrespecífico.deleter padrão default_delete<Type> pressupõe que o recurso apontado por _Ptr é atribuído com new, e que pode ser liberado chamando delete _Ptr.(A especialização parcial de **unique_ptr<Type[]>**gerencia os objetos de matriz atribuídos com new[], e tem deleter padrão, **default_delete<Type[]>**especializada para chamar a exclusão _Ptr[].)

O ponteiro armazenado a um recurso propriedade, stored_ptr tem o tipo pointer.É Del::pointer se definido, e Type *se não.O objeto armazenado stored_deleter de deleter não ocupa nenhum espaço no objeto se deleter é sem estado.Observe que Del pode ser um tipo de referência.

Membros

Ee410601.collapse_all(pt-br,VS.110).gifConstrutores

unique_ptr::unique_ptr

Há sete construtores para unique_ptr.

Ee410601.collapse_all(pt-br,VS.110).gifTypedefs

deleter_type

Um sinónimo para o parâmetro Deldo modelo.

element_type

Um sinónimo para o parâmetro Type.de modelo

pointer

Um sinónimo para Del::pointer se definido, se não Type *.

Ee410601.collapse_all(pt-br,VS.110).gifFunções de membro

unique_ptr::get

Retorne stored_ptr.

unique_ptr::get_deleter

Retorna uma referência a stored_deleter.

unique_ptr::release

armazena pointer() em stored_ptr e retorna seu conteúdo anteriores.

unique_ptr::reset

Libera o recurso atualmente propriedade aceita um novo recurso.

unique_ptr::swap

Recurso e deleter de acordo com unique_ptrfornecido.

Ee410601.collapse_all(pt-br,VS.110).gifOperadores

operator bool

O operador retorna um valor de um tipo que seja conversível a bool.O resultado da conversão bool é true quando get() != pointer(), se não false.

operator->

A função de membro retorna stored_ptr.

operator*

O returns*stored_ptr.da função de membro

unique_ptr operator=

Atribui o valor de unique_ptr(ou) de pointer-typea unique_ptratual.

Requisitos

Cabeçalho: <memory>

Namespace: STD

Consulte também

Referência

<memory>

Outros recursos

os membros do unique_ptr