std::allocator_traits<Alloc>::destroy
Определён в заголовочном файле <memory> | ||
|---|---|---|
template< class T > static void destroy( Alloc& a, T* p ); |
(начиная с C++11) (constexpr начиная с C++20) |
Вызывает деструктор объекта, на который указывает p. Если возможно, делает это, вызывая a.destroy(p). Если это невозможно (например, Alloc не имеет функции-члена destroy()), то вызывает деструктор *p напрямую, как p->~T()(до C++20)std::destroy_at(p)(начиная с C++20).
Параметры
| a | - | аллокатор, используемый для уничтожения |
| p | - | указатель на уничтожаемый объект |
Возвращаемое значение
(нет)
Примечания
Поскольку эта функция автоматически вызывает деструктор напрямую в качестве резервного варианта, функция-член destroy() является необязательным требованием к аллокатору начиная с C++11.
Пример
См. также
|
(до C++20) | уничтожает объект в выделенной области памяти (открытая функция-член std::allocator<T>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/allocator_traits/destroy