| 3593 | |
| 3594 | template<typename U> |
| 3595 | static inline void destroy_array(U *p, size_t count) { |
| 3596 | if (p != nullptr) { |
| 3597 | assert(count > 0); |
| 3598 | for (size_t i = count; i != 0;) { |
| 3599 | (p + --i)->~U(); |
| 3600 | } |
| 3601 | (Traits::free)(p); |
| 3602 | } |
| 3603 | } |
| 3604 | |
| 3605 | template<typename U> |
| 3606 | static inline U *create() { |