51 #ifdef PB_DS_LU_MAP_TRACE_
60 #ifdef PB_DS_DATA_TRUE_INDICATOR
61 #define PB_DS_LU_NAME lu_map
64 #ifdef PB_DS_DATA_FALSE_INDICATOR
65 #define PB_DS_LU_NAME lu_set
68 #define PB_DS_CLASS_T_DEC \
69 template<typename Key, typename Mapped, typename Eq_Fn, \
70 typename _Alloc, typename Update_Policy>
72 #define PB_DS_CLASS_C_DEC \
73 PB_DS_LU_NAME<Key, Mapped, Eq_Fn, _Alloc, Update_Policy>
75 #define PB_DS_LU_TRAITS_BASE \
76 types_traits<Key, Mapped, _Alloc, false>
79 #define PB_DS_DEBUG_MAP_BASE_C_DEC \
80 debug_map_base<Key, Eq_Fn, \
81 typename _Alloc::template rebind<Key>::other::const_reference>
86 template<
typename Key,
90 typename Update_Policy>
93 protected PB_DS_DEBUG_MAP_BASE_C_DEC,
104 typename _Alloc::template rebind<entry>::other::pointer
m_p_next;
122 #define PB_DS_GEN_POS entry_pointer
132 #ifdef _GLIBCXX_DEBUG
133 typedef PB_DS_DEBUG_MAP_BASE_C_DEC debug_base;
156 typedef typename traits_base::pointer
pointer;
161 #ifdef PB_DS_DATA_TRUE_INDICATOR
165 #ifdef PB_DS_DATA_FALSE_INDICATOR
171 #ifdef PB_DS_DATA_TRUE_INDICATOR
175 #ifdef PB_DS_DATA_FALSE_INDICATOR
189 template<
typename It>
207 #ifdef PB_DS_DATA_TRUE_INDICATOR
212 return traits_base::s_null_type;
216 inline std::pair<point_iterator, bool>
219 inline point_iterator
224 return point_iterator(p_e == 0 ? 0: &p_e->m_value);
238 template<
typename Pred>
257 #ifdef _GLIBCXX_DEBUG
259 assert_valid(
const char* file,
int line)
const;
262 #ifdef PB_DS_LU_MAP_TRACE_
269 template<
typename It>
274 #ifdef PB_DS_DATA_TRUE_INDICATOR
286 template<
typename Metadata>
305 r_pos = r_pos->m_p_next;
306 r_p_value = (r_pos == 0) ? 0 : &r_pos->m_value;
309 template<
typename Metadata>
337 #undef PB_DS_CLASS_T_DEC
338 #undef PB_DS_CLASS_C_DEC
339 #undef PB_DS_LU_TRAITS_BASE
340 #undef PB_DS_DEBUG_MAP_BASE_C_DEC
Update_Policy update_policy
Definition: lu_map_.hpp:143
static Eq_Fn s_eq_fn
Definition: lu_map_.hpp:320
traits_base::mapped_reference mapped_reference
Definition: lu_map_.hpp:153
size_type max_size() const
static void init_entry_metadata(entry_pointer, type_to_type< Metadata >)
entry_allocator::const_reference const_entry_reference
Definition: lu_map_.hpp:111
PB_DS_LU_TRAITS_BASE traits_base
Definition: lu_map_.hpp:98
traits_base::key_const_reference key_const_reference
Definition: lu_map_.hpp:149
traits_base::key_reference key_reference
Definition: lu_map_.hpp:148
Update_Policy::metadata_type update_metadata
Definition: lu_map_.hpp:144
traits_base::mapped_pointer mapped_pointer
Definition: lu_map_.hpp:151
_Alloc::size_type size_type
Definition: lu_map_.hpp:140
traits_base::const_reference const_reference_
Definition: lu_map_.hpp:120
Definition: lu_map_.hpp:100
static Update_Policy s_update_policy
Definition: lu_map_.hpp:321
point_iterator find(key_const_reference r_key)
Definition: lu_map_.hpp:220
static null_type s_null_type
Definition: lu_map_.hpp:323
const_iterator_ const_iterator
Definition: lu_map_.hpp:179
Definition: entry_metadata_base.hpp:49
traits_base::value_type value_type
Definition: lu_map_.hpp:155
Represents no type, or absence of type, for template tricks.
Definition: tag_and_trait.hpp:210
traits_base::pointer pointer_
Definition: lu_map_.hpp:117
entry_pointer_allocator::pointer entry_pointer_array
Definition: lu_map_.hpp:114
#define _GLIBCXX_DEBUG_ONLY(_Statement)
Definition: debug.h:63
_Alloc::template rebind< entry >::other::pointer m_p_next
Definition: lu_map_.hpp:104
entry_allocator::reference entry_reference
Definition: lu_map_.hpp:110
void actual_erase_entry(entry_pointer)
void inc_it_state(const_pointer &r_p_value, entry_pointer &r_pos) const
Definition: lu_map_.hpp:303
traits_base::key_type key_type
Definition: lu_map_.hpp:145
_Alloc::difference_type difference_type
Definition: lu_map_.hpp:141
static entry_allocator s_entry_allocator
Definition: lu_map_.hpp:319
traits_base::value_type m_value
Definition: lu_map_.hpp:103
traits_base::pointer pointer
Definition: lu_map_.hpp:156
traits_base::mapped_const_reference mapped_const_reference
Definition: lu_map_.hpp:154
traits_base::const_pointer const_pointer
Definition: lu_map_.hpp:157
point_const_iterator find(key_const_reference r_key) const
Definition: lu_map_.hpp:228
Eq_Fn eq_fn
Definition: lu_map_.hpp:142
point_const_iterator_ point_const_iterator
Definition: lu_map_.hpp:169
static bool apply_update(entry_pointer, type_to_type< Metadata >)
entry_allocator::const_pointer const_entry_pointer
Definition: lu_map_.hpp:109
Definition: type_utils.hpp:160
void copy_from_range(It, It)
traits_base::mapped_const_pointer mapped_const_pointer
Definition: lu_map_.hpp:152
entry_pointer m_p_l
Definition: lu_map_.hpp:325
_Alloc allocator_type
Definition: lu_map_.hpp:139
traits_base::const_reference const_reference
Definition: lu_map_.hpp:159
Definition: lu_map_.hpp:91
static type_to_type< update_metadata > s_metadata_type_indicator
Definition: lu_map_.hpp:322
mapped_reference operator[](key_const_reference r_key)
Definition: lu_map_.hpp:205
traits_base::const_pointer const_pointer_
Definition: lu_map_.hpp:118
#define PB_DS_LU_TRAITS_BASE
Definition: lu_map_.hpp:75
entry_pointer find_imp(key_const_reference) const
Const range-type iterator.
Definition: const_iterator.hpp:43
std::tr1::integral_constant< int, 1 > true_type
Definition: type_utils.hpp:70
Conditional dey destructor, cc_hash.
Definition: cond_key_dtor_entry_dealtor.hpp:47
void erase_next(entry_pointer)
entry_pointer allocate_new_entry(const_reference, false_type)
traits_base::key_pointer key_pointer
Definition: lu_map_.hpp:146
Find type iterator.
Definition: point_iterator.hpp:43
void swap(PB_DS_CLASS_C_DEC &)
std::pair< point_iterator, bool > insert(const_reference)
Range-type iterator.
Definition: iterator.hpp:43
bool erase(key_const_reference)
traits_base::reference reference
Definition: lu_map_.hpp:158
_Alloc::template rebind< entry >::other entry_allocator
Definition: lu_map_.hpp:107
traits_base::mapped_type mapped_type
Definition: lu_map_.hpp:150
#define PB_DS_CLASS_C_DEC
Definition: lu_map_.hpp:72
traits_base::key_const_pointer key_const_pointer
Definition: lu_map_.hpp:147
Const point-type iterator.
Definition: point_const_iterator.hpp:45
_Alloc::template rebind< entry_pointer >::other entry_pointer_allocator
Definition: lu_map_.hpp:113
traits_base::reference reference_
Definition: lu_map_.hpp:119
traits_base::value_type value_type_
Definition: lu_map_.hpp:116
cond_dealtor< entry, _Alloc > cond_dealtor_t
Definition: lu_map_.hpp:136
entry_allocator::pointer entry_pointer
Definition: lu_map_.hpp:108
std::tr1::integral_constant< int, 0 > false_type
Definition: type_utils.hpp:71