45 erase_in_pos_imp(key_const_reference r_key,
const comp_hash& r_pos_hash_pair)
47 PB_DS_ASSERT_VALID((*
this))
48 entry_pointer p_e = m_entries[r_pos_hash_pair.first];
49 resize_base::notify_erase_search_start();
52 resize_base::notify_erase_search_end();
53 PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
54 PB_DS_ASSERT_VALID((*this))
58 if (hash_eq_fn_base::operator()(PB_DS_V2F(p_e->m_value), p_e->m_hash,
59 r_key, r_pos_hash_pair.second))
61 resize_base::notify_erase_search_end();
62 PB_DS_CHECK_KEY_EXISTS(r_key)
63 erase_entry_pointer(m_entries[r_pos_hash_pair.first]);
64 do_resize_if_needed_no_throw();
65 PB_DS_ASSERT_VALID((*this))
71 entry_pointer p_next_e = p_e->m_p_next;
74 resize_base::notify_erase_search_end();
75 PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
76 PB_DS_ASSERT_VALID((*this))
80 if (hash_eq_fn_base::operator()(PB_DS_V2F(p_next_e->m_value),
81 p_next_e->m_hash, r_key,
82 r_pos_hash_pair.second))
84 resize_base::notify_erase_search_end();
85 PB_DS_CHECK_KEY_EXISTS(r_key)
86 erase_entry_pointer(p_e->m_p_next);
87 do_resize_if_needed_no_throw();
88 PB_DS_ASSERT_VALID((*this))
91 resize_base::notify_erase_search_collision();