Пространства имён
Варианты
Действия

std::allocator_traits::destroy

Материал из cppreference.com
 
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
 
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody>
Определено в заголовочном файле <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)
уничтожает объект в выделенном хранилище
(public функция-элемент std::allocator) [править]