45 insert_imp(const_reference r_val,
true_type)
47 PB_DS_ASSERT_VALID((*
this))
48 key_const_reference key = PB_DS_V2F(r_val);
49 comp_hash pos_hash_pair = ranged_hash_fn_base::operator()(key);
50 entry_pointer p_e = m_entries[pos_hash_pair.first];
51 resize_base::notify_insert_search_start();
53 while (p_e != 0 && !hash_eq_fn_base::operator()(PB_DS_V2F(p_e->m_value),
55 key, pos_hash_pair.second))
57 resize_base::notify_insert_search_collision();
61 resize_base::notify_insert_search_end();
64 PB_DS_CHECK_KEY_EXISTS(key)
65 return std::
make_pair(&p_e->m_value, false);
68 PB_DS_CHECK_KEY_DOES_NOT_EXIST(key)
69 return std::
make_pair(insert_new_imp(r_val, pos_hash_pair), true);
constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type > make_pair(_T1 &&__x, _T2 &&__y)
A convenience wrapper for creating a pair from two objects.
Struct holding two objects of arbitrary type.
integral_constant< bool, true > true_type
The type used as a compile-time boolean with true value.