Spec-Zone.ru › C++

std::allocator_traits<Alloc>::destroy

Определено в заголовке <memory>
template< class T >
static void destroy( Alloc& a, T* p );
(с C++11)
(до C++20)
template< class T >
static constexpr void destroy( Alloc& a, T* p );
(с C++20)

Вызывает деструктор объекта, на который указывает p. Если возможно, делает это, вызвав a.destroy(p). Если это невозможно (например, Alloc не имеет члена-функции destroy()), тогда вызывает деструктор *p напрямую, как p->~T()(до C++20)std::destroy_at(p)(с C++20).

Параметры

a - аллокатор для использования при уничтожении
p - указатель на объект, который уничтожается

Возвращаемое значение

(нет)

Примечания

Поскольку эта функция предоставляет автоматическое возвращение к прямому вызову деструктора, член-функция destroy() является необязательным требованием для Allocator с C++11.

Пример

См. также

destroy
(до C++20)
уничтожает объект в выделенной памяти
(публичная член-функция std::allocator<T>)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/allocator_traits/destroy

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API