Notice that this does not deallocate the storage for the element (see member deallocate to release storage space).
The function usesvalue_type's destructor (value_typeis a member type, alias of the allocator's template parameter), as if the following code was used p->~value_type();
The function uses U's destructor, as if the following code was used p->~U();