Шаблон класса default_delete служит деструктором по умолчанию (политика разрушения) для шаблона класса unique_ptr.
Template Parameters
Тип для удаления. Это может быть неполный тип
The type to be deleted. It may be an incomplete type
[ORIG_END] -->
default_delete
public
construct/copy/destruct
Конструктор хранилища.
Default constructor.
[ORIG_END] -->
Трвичный конструктор
Trivial copy constructor
[ORIG_END] -->
Effects: Строит объект default_delete от другого объекта default_delete<U>.
Замечания: Этот конструктор не участвует в разрешении перегрузки, если только:
Если T не является типом массива и U* неявно конвертируется в T*.
Effects: Constructs a default_delete object from another default_delete<U> object.
Remarks: This constructor shall not participate in overload resolution unless:
If T is not an array type and U* is implicitly convertible to T*.
[ORIG_END] -->
Если T - это тип массива, а U* - более квалифицированный указатель CV для удаления_extent::type.
Частное назначение
Trivial assignment
[ORIG_END] -->
Effects: Строит объект default_delete от другого объекта default_delete<U>.
Замечания: Этот конструктор не участвует в разрешении перегрузки, если только:
Если T не является типом массива и U* неявно конвертируется в T*.
Effects: Constructs a default_delete object from another default_delete<U> object.
Remarks: This constructor shall not participate in overload resolution unless:
If T is not an array type and U* is implicitly convertible to T*.
[ORIG_END] -->
Если T - это тип массива, а U* - более квалифицированный указатель CV для удаления_extent::type.
default_delete public member functions
Effects: если T не является типом массива, звонит delete на статичной_cast(ptr), иначе звонит delete[] на статичной_cast::type*>(ptr).
Замечания: Если U является неполным типом, программа плохо сформирована. Этот оператор не участвует в разрешении перегрузки, если только:
T не является типом массива и U* конвертируется в T*, OR
Effects: if T is not an array type, calls delete on static_cast<T*>(ptr), otherwise calls delete[] on static_cast<remove_extent<T>::type*>(ptr).
Remarks: If U is an incomplete type, the program is ill-formed. This operator shall not participate in overload resolution unless:
T is not an array type and U* is convertible to T*, OR
[ORIG_END] -->
T - это тип массива, и удалите_cv::type - тот же тип, что и удалите_cv::type>::type и U* - конвертируемый для удаления_extent::type*.
Effects: То же, что и (this)(static_cast<element_type>(nullptr)).
Effects: Same as (this)(static_cast<element_type>(nullptr)).
[ORIG_END] -->
Статья Struct template default_delete раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.