Freigeben über


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

Ee410601.collapse_all(de-de,VS.110).gifKonstruktoren

unique_ptr::unique_ptr

Es gibt sieben Konstruktoren für unique_ptr.

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

deleter_type

Ein Synonym für den Vorlagenparameter Del.

element_type

Ein Synonym für den Vorlagenparameter Type.

Zeiger

Ein Synonym für Del::pointer, wenn Sie; andernfalls Type * definiert werden.

Ee410601.collapse_all(de-de,VS.110).gifMemberfunktionen

unique_ptr::get

Gibt stored_ptr zurück.

unique_ptr::get_deleter

Gibt einen Verweis auf stored_deleter zurück.

unique_ptr::release

speichert pointer() in stored_ptr und gibt den vorhergehenden Inhalt zurück.

unique_ptr::reset

Gibt die aktuelle besitzenden Ressourcen frei und akzeptiert eine neue Ressource.

unique_ptr::swap

Tauscht Ressource und deleter mit dem bereitgestellten unique_ptr aus.

Ee410601.collapse_all(de-de,VS.110).gifOperatoren

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.

unique_ptr operator=

Weist unique_ptr den aktuellen Wert von unique_ptr(oder von pointer-type).

Anforderungen

Header: <memory>

Namespace: std

Siehe auch

Referenz

<memory>

Weitere Ressourcen

unique_ptr Member