##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::allocator_traits::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().

### [edit] Parameters

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

### [edit] Return value

(none)

### [edit] 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.

### [edit] See also

destroy (deprecated in C++17) | destructs an object in allocated storage (public member function of `std::allocator`) [edit]

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