| 126 | } |
| 127 | |
| 128 | void reserve(size_type new_capacity) { |
| 129 | if (new_capacity > capacity_) { |
| 130 | T* new_data = allocate(new_capacity); |
| 131 | |
| 132 | if (!new_data) { |
| 133 | for(;;); |
| 134 | } |
| 135 | |
| 136 | for (size_type i = 0; i < size_; ++i) { |
| 137 | new (&new_data[i]) T(std::move(data_[i])); |
| 138 | data_[i].~T(); |
| 139 | } |
| 140 | |
| 141 | deallocate(data_); |
| 142 | data_ = new_data; |
| 143 | capacity_ = new_capacity; |
| 144 | } |
| 145 | } |
| 146 | |
| 147 | void resize(size_type count) { |
| 148 | if (count < size_) { |