Udostępnij za pośrednictwem


unique_ptr Class

Przechowuje wskaźnika do której jest właścicielem obiektu.Jest właścicielem obiektu żaden inny unique_ptr.Obiekt jest niszczony, kiedy unique_ptr jest niszczony.

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
    };

Parametry

  • _Right
    A unique_ptr.

  • _Nptr
    An rvalue of type std::nullptr_t.

  • _Ptr
    A pointer.

  • _Deleter
    A deleter funkcji, który jest powiązany z unique_ptr.

Wyjątki

Bez wyjątków są generowane przez unique_ptr.

Uwagi

unique_ptr Zastępuje klasy auto_ptri może służyć jako element kontenerów STL.

unique_ptrjednoznacznie zarządza zasobem.Każdy unique_ptr obiekt przechowuje wskaźnik do obiektu jest właścicielem lub przechowuje pusty wskaźnik.Zasób może być własnością nie więcej niż jednego unique_ptr zgłasza zastrzeżeń; gdy unique_ptr niszczony jest obiekt, który jest właścicielem określonego zasobu, zasób zostaje zwolniony.A unique_ptr obiekt może być przeniesiony, ale nie jest kopiowane; Aby uzyskać więcej informacji, zobacz Odwołanie Rvalue; niewłaściwy deklarator: & &.

Zasób jest zwalniany, wywołując zachowane deleter obiektu typu Del który wie, sposobu przydzielania zasobów dla danego unique_ptr.Domyślnie deleterdefault_delete<Type> zakłada, że zasób wskazywanej przez _Ptr jest przydzielany z new, i które może zostać zwolnione, wywołując delete _Ptr. (Częściowa specjalizacja **unique_ptr<Type[]>**zarządza obiektami tablicy rozdzielone z new[], i ma domyślnie deleterdefault_delete<Type[]>, specjalistyczne do wywołania [delete] _Ptr.)

Przechowywanych wskaźnik, do której jest właścicielem zasobu, stored_ptr ma typ pointer.Jest Del::pointer Jeśli została zdefiniowana, a Type * Jeśli nie.Przechowywane deleter obiektu stored_deleter zajmuje bez spacji w obiekcie, jeśli deleter jest bezpaństwowy.Należy zauważyć, że Del może być typem odwołania.

Elementy członkowskie

Ee410601.collapse_all(pl-pl,VS.110).gifKonstruktory

unique_ptr::unique_ptr

Istnieje siedem konstruktorów unique_ptr.

Ee410601.collapse_all(pl-pl,VS.110).gifDefinicje typów

deleter_type

Synonim dla parametru Del.

element_type

Jest to synonim parametr szablonuType.

pointer

Jest to synonim Del::pointer Jeśli zdefiniowane inaczej Type *.

Ee410601.collapse_all(pl-pl,VS.110).gifFunkcje składowe

unique_ptr::get

Zwraca wartość typu stored_ptr.

unique_ptr::get_deleter

Zwraca odwołanie do stored_deleter.

unique_ptr::release

przechowuje pointer() w stored_ptr i zwraca jego poprzedniej zawartości.

unique_ptr::reset

Zwalnia zasoby aktualnie własnością i akceptuje nowy zasób.

unique_ptr::swap

Wymiany zasobów i deleter z pod warunkiem unique_ptr.

Ee410601.collapse_all(pl-pl,VS.110).gifOperatory

operator bool

Operator zwraca wartość typu, jest konwertowany na bool.Wynik konwersji na bool jest true po get() != pointer(), w przeciwnym razie false.

operator->

Zwraca element członkowski funkcjastored_ptr.

operator*

Zwraca wartość funkcji Członkowskich *stored_ptr.

unique_ptr operator=

Przypisuje wartość elementu unique_ptr (lub pointer-type) do bieżącego unique_ptr.

Wymagania

Nagłówek: <memory>

Obszar nazw: std

Zobacz też

Informacje

<memory>

Inne zasoby

unique_ptr członkowie