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
Интерфейс rvalue типа std::nullptr_t._Ptr
Объект pointer._Deleter
Функция deleter, привязана к unique_ptr.
Исключения
Исключений unique_ptr не создаются.
Заметки
Класс unique_ptr заменяет значение auto_ptr и может использоваться в качестве элемента контейнеров STL.
unique_ptr является уникальным управляет ресурс.Каждый объект unique_ptr сохраняет указатель на объект, он имеет или сохраняет указатель.Ресурс может иметься не более чем одним объектом unique_ptr; когда объект unique_ptr, имеющий указанный ресурс разрушается, ресурс удаленного.Объект unique_ptr не может быть перемещен, но копируется; дополнительные сведения см. в разделе Декларатор ссылки Rvalue: &&.
Ресурс удаленного путем вызова, сохраненный объект deleter типа Del, известно, как ресурсы выделяются для указанного объекта unique_ptr.Значение по умолчанию - deleterdefault_delete<Type> высказывать ресурс, указанное в выборе _Ptr с new, и он может быть освобождается путем вызова метода delete _Ptr.unique_ptr<Type[]>(специализация a частично управляет объекты массивов, созданные с помощью new[], имеет значение по умолчанию deleter и default_delete<Type[]>, специализированное, чтобы вызвать удаление [] _Ptr).
Сохраненный указатель на имеемому ресурсу, stored_ptr имеет тип pointer.Значение Del::pointer, если это указано, и значение Type * в противном случае.Сохраненный объект stored_deleterdeleter не занимает нет места в объекте, если deleter является приложением с неопределенным состоянием.Обратите внимание, что Del может быть ссылочным типом.
Члены
Конструкторы
7 Конструкторов для unique_ptr. |
Определения типов
Синоним для параметра Del шаблона. |
|
Синоним для параметра Type. шаблона |
|
Если определен синоним для Del::pointer, в противном случае — значение Type *. |
Функции-члены
Возвращает stored_ptr. |
|
Возвращает ссылку на stored_deleter. |
|
сохраняет pointer() в stored_ptr и возвращает его предыдущие содержимое. |
|
Выпуски в данный момент имеемый ресурс и принимают нового ресурса. |
|
Ресурс и deleter обеспечивает с заданным unique_ptr. |
Операторы
operator bool |
Оператор возвращает значение типа, преобразуемым к bool.Результат преобразования в bool при trueget() != pointer(), в противном случае — значение false. |
operator-> |
Возвращает функцию-член stored_ptr. |
operator* |
Returns* функции-члена stored_ptr. |
Присваивает значение unique_ptr(или pointer-type) к текущему unique_ptr. |
Требования
Заголовок: <memory>
Пространство имен: std