template <class T>
void destroy_at(T* location);
Effects: Equivalent to:
location->~T();
template <class ForwardIterator>
void destroy(ForwardIterator first, ForwardIterator last);
Effects: Equivalent to:
for (; first!=last; ++first) destroy_at(addressof(*first));
template <class ForwardIterator, class Size>
ForwardIterator destroy_n(ForwardIterator first, Size n);
Effects: Equivalent to:
for (; n > 0; (void)++first, --n) destroy_at(addressof(*first)); return first;