다음을 통해 공유


unique_ptr Class

소유 하는 개체에 대 한 포인터를 저장합니다.개체 없음 상대방이 소유 하 고 unique_ptr.개체가 소멸 되기 때의 unique_ptr 소멸 됩니다.

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

매개 변수

  • _Right
    unique_ptr

  • _Nptr
    std::nullptr_t 형식의 rvalue입니다.

  • _Ptr
    pointer

  • _Deleter
    A deleter 바인딩되는 함수는 unique_ptr.

예외

예외 없음에서 생성 된 unique_ptr.

설명

unique_ptr 클래스에 대체 auto_ptr, STL 컨테이너의 요소로 사용 될 수 있습니다.

unique_ptr고유 리소스를 관리합니다.각 unique_ptr 개체가 소유 하 고 있거나 null 포인터를 저장 하는 개체에 대 한 포인터를 저장 합니다.하나에서 둘 이상의 리소스를 소유할 수 있습니다 unique_ptr 개체입니다. 경우는 unique_ptr 가 특정 리소스를 소유 하는 개체가 소멸 될, 리소스를 해제 합니다.A unique_ptr 개체 이동, 수 있지만 복사 되지 않습니다. 자세한 내용은 Rvalue 참조 선언 자: & &.

저장 된 호출 하 여 리소스 해제 deleter 형식의 개체를 Del 에 대 한 특정 리소스를 할당 하는 방법을 알고 unique_ptr.기본 deleterdefault_delete<Type> 리소스를 가리키는 것으로 가정 _Ptr 사용 하 여 할당 new와 호출 하 여이 확보할 수 있는 delete _Ptr. (부분 특수화 **unique_ptr<Type[]>**배열 개체를 사용 하 여 할당 관리 new[], 있고 기본 **deleterdefault_delete<Type[]>**특수 호출 하려면 delete _Ptr.)

저장된 포인터는 소유한 리소스 stored_ptr 형식에 pointer.이 Del::pointer 정의 하는 경우 및 Type * 없는 경우.저장 된 deleter 개체 stored_deleter 개체에서 공백이 차지 하는 경우는 deleter 상태 비저장입니다.이때 Del 참조 형식이 될 수 있습니다.

Members

Ee410601.collapse_all(ko-kr,VS.110).gif생성자

unique_ptr::unique_ptr

7 명의 생성자는 unique_ptr.

Ee410601.collapse_all(ko-kr,VS.110).gif형식 정의

deleter_type

템플릿 매개 변수에 대 한 동의어 Del.

element_type

동의어에 대 한 템플릿 매개 변수Type.

포인터

동의어에 대 한 Del::pointer 정의 그렇지 않은 경우 Type *.

Ee410601.collapse_all(ko-kr,VS.110).gif멤버 함수

unique_ptr::get

stored_ptr를 반환합니다.

unique_ptr::get_deleter

에 대 한 참조를 반환 합니다. stored_deleter.

unique_ptr::release

저장 pointer() 에서 stored_ptr 및 그 이전 콘텐츠를 반환 합니다.

unique_ptr::reset

현재 소유한 리소스를 해제 하 고 새 리소스를 적용 합니다.

unique_ptr::swap

리소스를 교환 하 고 deleter 에 제공 된 unique_ptr.

Ee410601.collapse_all(ko-kr,VS.110).gif연산자

operator bool

변환할 수 있는 형식의 값을 반환 하는 연산자 bool.변환의 결과 bool 는 true 때 get() != pointer(), 그렇지 않으면 false.

operator->

멤버 함수를 반환합니다.stored_ptr.

operator*

멤버 함수 반환 *stored_ptr.

unique_ptr operator=

값을 할당 한 unique_ptr (또는 pointer-type)는 현재 unique_ptr.

요구 사항

헤더: <memory>

네임 스페이스: std

참고 항목

참조

<memory>

기타 리소스

unique_ptr 멤버