| 98 | const T* get(size_t i) const noexcept { return _get(i); } |
| 99 | T* get(size_t i) noexcept { return (T*)_get(i); } |
| 100 | void erase(size_t i) { |
| 101 | assert(i < _capacity); |
| 102 | if (get_bit(i)) { |
| 103 | erase_bit(i); |
| 104 | _ptr[i].~T(); |
| 105 | } |
| 106 | } |
| 107 | bool empty() const noexcept { return size() == 0; } |
| 108 | size_t size() const noexcept { return _size; } |
| 109 | size_t capacity() const noexcept { return _capacity; } |