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
Construtores
Há sete construtores para unique_ptr. |
Typedefs
Um sinónimo para o parâmetro Deldo modelo. |
|
Um sinónimo para o parâmetro Type.de modelo |
|
Um sinónimo para Del::pointer se definido, se não Type *. |
Funções de membro
Retorne stored_ptr. |
|
Retorna uma referência a stored_deleter. |
|
armazena pointer() em stored_ptr e retorna seu conteúdo anteriores. |
|
Libera o recurso atualmente propriedade aceita um novo recurso. |
|
Recurso e deleter de acordo com unique_ptrfornecido. |
Operadores
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 |
Atribui o valor de unique_ptr(ou) de pointer-typea unique_ptratual. |
Requisitos
Cabeçalho: <memory>
Namespace: STD