42#ifdef PB_DS_CLASS_C_DEC
47erase(key_const_reference r_key)
49 PB_DS_ASSERT_VALID((*
this))
50 return erase_in_pos_imp(r_key, ranged_hash_fn_base::operator()(r_key));
56erase_in_pos_imp(key_const_reference r_key, size_type pos)
58 PB_DS_ASSERT_VALID((*
this))
59 entry_pointer p_e = m_entries[pos];
60 resize_base::notify_erase_search_start();
63 resize_base::notify_erase_search_end();
64 PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
65 PB_DS_ASSERT_VALID((*
this))
69 if (hash_eq_fn_base::operator()(PB_DS_V2F(p_e->m_value), r_key))
71 resize_base::notify_erase_search_end();
72 PB_DS_CHECK_KEY_EXISTS(r_key)
73 erase_entry_pointer(m_entries[pos]);
74 do_resize_if_needed_no_throw();
75 PB_DS_ASSERT_VALID((*
this))
81 entry_pointer p_next_e = p_e->m_p_next;
84 resize_base::notify_erase_search_end();
85 PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key)
86 PB_DS_ASSERT_VALID((*
this))
90 if (hash_eq_fn_base::operator()(PB_DS_V2F(p_next_e->m_value), r_key))
92 resize_base::notify_erase_search_end();
93 PB_DS_CHECK_KEY_EXISTS(r_key)
94 erase_entry_pointer(p_e->m_p_next);
95 do_resize_if_needed_no_throw();
96 PB_DS_ASSERT_VALID((*
this))
99 resize_base::notify_erase_search_collision();