unique_ptr Class
Speichert einen Zeiger auf einen zugehörigen Objekt.Das - Objekt wird von kein anderes unique_ptr gehören.Das - Objekt zerstört wird, wenn unique_ptr zerstört wird.
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
};
Parameter
_Right
unique_ptr_Nptr
Ein rvalue vom Typ std::nullptr_t._Ptr
pointer_Deleter
Eine deleter-Funktion, die zu unique_ptr gebunden ist.
Ausnahmen
Es werden keine Ausnahmen durch unique_ptr generiert.
Hinweise
Die unique_ptr-Klasse löst auto_ptr ab und kann als Element von STL-Containern verwendet werden.
unique_ptr verwaltet eindeutig eine Ressource.Jedes - Objekt unique_ptr speichert einen Zeiger auf das - Objekt, das dieser einen NULL-Zeiger besitzt oder speichert.Eine Ressource kann über höchstens ein unique_ptr-Objekt besitzen; Wenn ein unique_ptr-Objekt, das eine bestimmte Ressource besitzt, zerstört wird, wird die Ressource freigegeben.Ein - Objekt unique_ptr wird verschoben, sondern kopiert werden; weitere Informationen finden Sie unter Rvalu-Verweis-Deklarator: &&.
Die Ressource wird freigegeben, indem ein deleter gespeichertes Objekt des Typs Del aufruft, der kann, Ressourcen für bestimmte unique_ptr zugeordnet werden.Standard deleterdefault_delete<Type> wird davon ausgegangen, dass die Ressource, auf _Ptr durch dargestellt wird, mit new zugeordnet ist und dass sie freigegeben werden kann, indem delete _Ptr aufruft.(Mit partiellen Spezialisierung unique_ptr<Type[]> A verwaltet die Arrayobjekte, die mit new[] zugeordnet und verfügt deleter Standard default_delete<Type[]>, spezialisiert, um delete [] _Ptr aufzurufen.)
Der gespeicherte Zeiger auf zugehörigen Ressourcen, stored_ptr ist vom Typ pointer.Es ist Del::pointer, wenn es definiert wird, und wenn Type * nicht.Das gespeicherte deleter-Objekt stored_deleter nimmt keinen Platz im - Objekt, wenn deleter statusfrei ist.Beachten Sie, dass Del ein Verweistyp sein kann.
Mitglieder
Konstruktoren
Es gibt sieben Konstruktoren für unique_ptr. |
Typedefs
Ein Synonym für den Vorlagenparameter Del. |
|
Ein Synonym für den Vorlagenparameter Type. |
|
Ein Synonym für Del::pointer, wenn Sie; andernfalls Type * definiert werden. |
Memberfunktionen
Gibt stored_ptr zurück. |
|
Gibt einen Verweis auf stored_deleter zurück. |
|
speichert pointer() in stored_ptr und gibt den vorhergehenden Inhalt zurück. |
|
Gibt die aktuelle besitzenden Ressourcen frei und akzeptiert eine neue Ressource. |
|
Tauscht Ressource und deleter mit dem bereitgestellten unique_ptr aus. |
Operatoren
operator bool |
Der Operator gibt einen Wert eines Typs zurück, der zu bool konvertiert werden kann.Das Ergebnis der Konvertierung zu bool ist true wenn get() != pointer(); andernfalls false. |
operator-> |
Die Memberfunktion gibt stored_ptr. zurück |
operator* |
Das Memberfunktion returns*stored_ptr. |
Weist unique_ptr den aktuellen Wert von unique_ptr(oder von pointer-type). |
Anforderungen
Header: <memory>
Namespace: std