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
생성자
7 명의 생성자는 unique_ptr. |
형식 정의
템플릿 매개 변수에 대 한 동의어 Del. |
|
동의어에 대 한 템플릿 매개 변수Type. |
|
동의어에 대 한 Del::pointer 정의 그렇지 않은 경우 Type *. |
멤버 함수
stored_ptr를 반환합니다. |
|
에 대 한 참조를 반환 합니다. stored_deleter. |
|
저장 pointer() 에서 stored_ptr 및 그 이전 콘텐츠를 반환 합니다. |
|
현재 소유한 리소스를 해제 하 고 새 리소스를 적용 합니다. |
|
리소스를 교환 하 고 deleter 에 제공 된 unique_ptr. |
연산자
operator bool |
변환할 수 있는 형식의 값을 반환 하는 연산자 bool.변환의 결과 bool 는 true 때 get() != pointer(), 그렇지 않으면 false. |
operator-> |
멤버 함수를 반환합니다.stored_ptr. |
operator* |
멤버 함수 반환 *stored_ptr. |
값을 할당 한 unique_ptr (또는 pointer-type)는 현재 unique_ptr. |
요구 사항
헤더: <memory>
네임 스페이스: std