in csrc/suffix_decoding/int32_map.h [89:106]
bool erase(int32_t key) {
if (key == KEY_EMPTY || key == KEY_TOMBSTONE) {
throw std::invalid_argument("invalid key");
}
if (!slots_) {
return false;
}
uint32_t idx;
if (!probe_insert_or_find_(key, idx)) {
return false;
}
value_ptr_(slots_[idx])->~T();
slots_[idx].key = KEY_TOMBSTONE;
--size_;
++tombstones_;
maybe_rehash_after_erase_();
return true;
}