Defined in header
template< class T >
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.