# std::allocator_traits<Alloc>::destroy

From cppreference.com
< cpp‎ | memory‎ | allocator traits

Defined in header `<memory>` |  |
template< class T > static void destroy( Alloc& a, T* p ); |  | (since C++11)

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().

### Parameters

a | - | allocator to use for destruction
p | - | pointer to the object being destroyed

### Return value

(none)

### Notes

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.

### See also

destroy (deprecated in C++17)(removed in C++20) | destructs an object in allocated storage (public member function of `std::allocator<T>`)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/memory/allocator_traits/destroy&oldid=103066"