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.
Пример
См. также
|
(до 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