Aracılığıyla paylaş


unique_ptr Class

Sahip olunan bir nesneye bir işaretçi depolar. Tarafından başka bir nesnenin sahibi unique_ptr. Nesne yok, unique_ptr yok edilir.

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

Parametreler

  • _Right
    unique_ptr

  • _Nptr
    An rvalue of type std::nullptr_t.

  • _Ptr
    pointer

  • _Deleter
    A deleter bağlı olduğu işlevi bir unique_ptr.

Özel Durumlar

Hiçbir özel durum tarafından oluşturulan unique_ptr.

Notlar

unique_ptr Sınıf yerini alır auto_ptrve stl kapsayıcılar bir öğesi olarak kullanılabilir.

unique_ptrbir kaynağı benzersiz olarak yönetir. Her unique_ptr Nesne sahibi veya bir null işaretçi depolar nesnesine bir işaretçi depolar. Bir kaynağın en fazla bir sahip olabileceği unique_ptr nesne; zaman bir unique_ptr belirli bir kaynağa sahip olan nesne bozulur, kaynağın serbest bırakılır. A unique_ptr nesne taşındı, ancak kopyalanmaz; Daha fazla bilgi için bkz: Rvalue başvuru Bildiricisi: & &.

Kaynak bir saklı çağırarak serbest deleter nesne türü Del , belirli bir için kaynakların nasıl ayrılacağını bilir unique_ptr. Varsayılan deleterdefault_delete<Type> kaynak tarafından gösterilir olduğunu varsayar _Ptr ile ayrılan new, ve, çağırarak boşaltılabileceğini delete _Ptr. (Kısmi özelleştirme **unique_ptr<Type[]>**ile ayrılan array nesneleri yönetir new[], ve varsayılan değer olan deleterdefault_delete<Type[]>, özelleştirilmiş aramak için [delete] _Ptr.)

Sahip olunan bir kaynağa saklı işaretçi stored_ptr türü pointer. Bu Del::pointer tanımlı, ve Type * değilse. Saklı deleter nesne stored_deleter , hiçbir nesne boşluğunda kapladığı deleter durumsuz olduğundan. Dikkat edin Del bir baþvuru türü olabilir.

Üyeler

Ee410601.collapse_all(tr-tr,VS.110).gifOluşturucular

unique_ptr::unique_ptr

Yedi oluşturucuları vardır unique_ptr.

Ee410601.collapse_all(tr-tr,VS.110).gifTür tanımları

deleter_type

Şablon parametresi için bir eş anlamlı Del.

element_type

Şablon parametresi eşanlamlısıType.

pointer

Eşanlamlısı Del::pointer tanımlanmış, aksi halde, Type *.

Ee410601.collapse_all(tr-tr,VS.110).gifÜye işlevleri

unique_ptr::get

Bir stored_ptr döndürür.

unique_ptr::get_deleter

Bir başvuru döndürür stored_deleter.

unique_ptr::release

saklayan pointer() , stored_ptr ve önceki içeriğini döndürür.

unique_ptr::reset

Şu anda sahip olduğu kaynak serbest bırakır ve yeni bir kaynak kabul eder.

unique_ptr::swap

Kaynak değişimi yapar ve deleter ile sağlanan unique_ptr.

Ee410601.collapse_all(tr-tr,VS.110).gifİşleçler

operator bool

İşleç için dönüştürülebilir bir türünde bir değer döndürür bool. Dönüştürme sonucu bool olan true , get() != pointer(), aksi takdirde false.

operator->

Üye işlevini verirstored_ptr.

operator*

Üye işlevi döndürür *stored_ptr.

unique_ptr operator=

Değerini atar bir unique_ptr (ya da bir pointer-type) geçerli unique_ptr.

Gereksinimler

Başlık: <memory>

Ad alanı: std

Ayrıca bkz.

Başvuru

<memory>

Diğer Kaynaklar

unique_ptr üyeleri