43 typename PB_DS_CLASS_C_DEC::point_iterator,
46 insert(const_reference r_val)
49 entry_pointer p_l = find_imp(
PB_DS_V2F(r_val));
54 return std::make_pair(point_iterator(&p_l->m_value),
false);
59 p_l = allocate_new_entry(r_val, traits_base::m_no_throw_copies_indicator);
60 p_l->m_p_next = m_p_l;
63 return std::make_pair(point_iterator(&p_l->m_value),
true);
69 allocate_new_entry(const_reference r_val,
false_type)
71 entry_pointer p_l = s_entry_allocator.allocate(1);
72 cond_dealtor_t cond(p_l);
73 new (
const_cast<void*
>(
static_cast<const void*
>(&p_l->m_value)))
78 init_entry_metadata(p_l, s_metadata_type_indicator);
83 inline typename PB_DS_CLASS_C_DEC::entry_pointer
85 allocate_new_entry(const_reference r_val,
true_type)
87 entry_pointer p_l = s_entry_allocator.allocate(1);
88 new (&p_l->m_value) value_type(r_val);
90 init_entry_metadata(p_l, s_metadata_type_indicator);
95 template<
typename Metadata>
98 init_entry_metadata(entry_pointer p_l, type_to_type<Metadata>)
99 {
new (&p_l->m_update_metadata) Metadata(s_update_policy()); }
104 init_entry_metadata(entry_pointer, type_to_type<null_type>)
#define false
Definition: stdbool.h:35
#define true
Definition: stdbool.h:34
#define _GLIBCXX_DEBUG_ONLY(_Statement)
Definition: debug.h:63
#define PB_DS_CLASS_C_DEC
Definition: bin_search_tree_.hpp:71
#define PB_DS_CLASS_T_DEC
Definition: bin_search_tree_.hpp:67
return(unsigned int) __res
std::tr1::integral_constant< int, 1 > true_type
Definition: type_utils.hpp:70
#define PB_DS_CHECK_KEY_EXISTS(_Key)
Definition: container_base_dispatch.hpp:55
#define PB_DS_ASSERT_VALID(X)
Definition: binary_heap_.hpp:324
#define PB_DS_V2F(X)
Definition: container_base_dispatch.hpp:80
#define PB_DS_CHECK_KEY_DOES_NOT_EXIST(_Key)
Definition: container_base_dispatch.hpp:58
std::tr1::integral_constant< int, 0 > false_type
Definition: type_utils.hpp:71