std::allocator_traits<Alloc>::destroy (3) - Linux Man Pages
Defined in header <memory>
template< class T > (since C++11)
static void destroy( Alloc& a, T* p );
Calls the destructor of the object pointed to by p. If possible, does so by calling a.destroy(p). If not possible (e.g. a does not have the member function destroy()), then calls the destructor of *p directly, as p->~T().
a - allocator to use for destruction
p - pointer to the object being destroyed
Because this function provides the automatic fall back to direct call to the destructor, the member function destroy() is an optional Allocator requirement since C++11.
destroy destructs an object in allocated storage
(deprecated in C++17)
(removed in C++20)