41 #ifndef PB_DS_TYPES_TRAITS_HPP
42 #define PB_DS_TYPES_TRAITS_HPP
59 template<
typename Key,
typename Mapped>
69 template<
typename Key>
72 typedef integral_constant<int, is_simple<Key>::value>
indicator;
77 template<
typename _Tv>
85 template<
typename _Th>
94 template<
typename _Tv,
typename _Th>
100 template<
typename _Tv>
106 template<
typename Key,
typename Mapped,
typename _Alloc,
bool Store_Hash>
113 template<
typename Key,
typename Mapped,
typename _Alloc>
123 typedef typename _Alloc::template rebind<__value_type>
__rebind_v;
134 typedef typename __rebind_va::pointer
pointer;
146 template<
typename Key,
typename Mapped,
typename _Alloc>
156 typedef typename _Alloc::template rebind<__value_type>
__rebind_v;
167 typedef typename __rebind_va::pointer
pointer;
180 template<
typename Key,
typename _Alloc>
188 typedef typename _Alloc::template rebind<null_type>
__rebind_m;
190 typedef typename _Alloc::template rebind<value_type>
__rebind_v;
200 typedef typename __rebind_va::pointer
pointer;
210 template<
typename Key,
typename _Alloc>
219 template<
typename Key,
typename _Alloc>
227 typedef typename _Alloc::template rebind<null_type>
__rebind_m;
229 typedef typename _Alloc::template rebind<value_type>
__rebind_v;
239 typedef typename __rebind_va::pointer
pointer;
249 template<
typename Key,
typename _Alloc>
255 template<
typename Key,
typename Mapped,
typename _Alloc,
bool Store_Hash>
262 template<
typename Key,
typename Mapped,
typename _Alloc,
bool Store_Hash>
264 :
public type_dispatch<Key, Mapped, _Alloc, Store_Hash>::type
268 typedef typename _Alloc::template rebind<Key>::other
__rebind_a;
_Alloc::size_type size_type
Definition: types_traits.hpp:117
Definition: types_traits.hpp:95
__rebind_a::const_reference key_const_reference
Definition: types_traits.hpp:276
no_throw_copies< Key, Mapped > __nothrowcopy
Definition: types_traits.hpp:267
stored_data< value_type, null_type > stored_data_type
Definition: types_traits.hpp:205
__rebind_va::value_type value_type
Definition: types_traits.hpp:133
_Alloc::template rebind< null_type > __rebind_m
Definition: types_traits.hpp:188
__rebind_ma::const_pointer mapped_const_pointer
Definition: types_traits.hpp:196
__rebind_ma::pointer mapped_pointer
Definition: types_traits.hpp:234
integral_constant< int, is_simple< Key >::value > indicator
Definition: types_traits.hpp:72
integral_constant< int, __simple > indicator
Definition: types_traits.hpp:65
hash_type m_hash
Definition: types_traits.hpp:89
__rebind_a::value_type key_type
Definition: types_traits.hpp:272
__rebind_va::const_pointer const_pointer
Definition: types_traits.hpp:168
value_type m_value
Definition: types_traits.hpp:81
__rebind_ma::const_pointer mapped_const_pointer
Definition: types_traits.hpp:235
__rebind_va::const_pointer const_pointer
Definition: types_traits.hpp:201
Definition: type_utils.hpp:95
_Alloc::size_type size_type
Definition: types_traits.hpp:184
__rebind_va::const_pointer const_pointer
Definition: types_traits.hpp:240
no_throw_indicator m_no_throw_copies_indicator
Definition: types_traits.hpp:282
std::pair< size_type, size_type > comp_hash
Definition: types_traits.hpp:277
__rebind_ma::const_reference mapped_const_reference
Definition: types_traits.hpp:131
#define false
Definition: stdbool.h:35
_Alloc::size_type size_type
Definition: types_traits.hpp:223
__rebind_va::const_pointer const_pointer
Definition: types_traits.hpp:135
type_base< Key, Mapped, _Alloc, Store_Hash > type
Definition: types_traits.hpp:258
__rebind_ma::reference mapped_reference
Definition: types_traits.hpp:236
__rebind_va::pointer pointer
Definition: types_traits.hpp:134
__rebind_ma::reference mapped_reference
Definition: types_traits.hpp:197
Represents no type, or absence of type, for template tricks.
Definition: tag_and_trait.hpp:210
#define true
Definition: stdbool.h:34
_Alloc::size_type size_type
Definition: types_traits.hpp:150
stored_data< value_type, null_type > stored_data_type
Definition: types_traits.hpp:139
Stored value.
Definition: types_traits.hpp:78
__rebind_ma::value_type mapped_type
Definition: types_traits.hpp:194
static null_type s_null_type
Definition: types_traits.hpp:207
stored_data< value_type, size_type > stored_data_type
Definition: types_traits.hpp:172
__rebind_ma::value_type mapped_type
Definition: types_traits.hpp:233
Key value_type
Definition: types_traits.hpp:224
std::pair< const Key, Mapped > __value_type
Definition: types_traits.hpp:155
__rebind_va::value_type value_type
Definition: types_traits.hpp:166
static const bool __simple
Definition: types_traits.hpp:63
__rebind_v::other __rebind_va
Definition: types_traits.hpp:230
_Alloc::template rebind< value_type > __rebind_v
Definition: types_traits.hpp:229
__rebind_va::reference reference
Definition: types_traits.hpp:169
Primary template.
Definition: types_traits.hpp:107
_Alloc::template rebind< __value_type > __rebind_v
Definition: types_traits.hpp:123
__rebind_m::other __rebind_ma
Definition: types_traits.hpp:121
__rebind_ma::const_reference mapped_const_reference
Definition: types_traits.hpp:198
__rebind_ma::reference mapped_reference
Definition: types_traits.hpp:130
static null_type s_null_type
Definition: types_traits.hpp:246
__rebind_ma::value_type mapped_type
Definition: types_traits.hpp:127
__rebind_ma::value_type mapped_type
Definition: types_traits.hpp:160
__rebind_v::other __rebind_va
Definition: types_traits.hpp:191
_Alloc::template rebind< Mapped > __rebind_m
Definition: types_traits.hpp:120
__rebind_ma::const_pointer mapped_const_pointer
Definition: types_traits.hpp:162
Type base dispatch.
Definition: types_traits.hpp:256
_Alloc::template rebind< __value_type > __rebind_v
Definition: types_traits.hpp:156
Stored hash.
Definition: types_traits.hpp:86
__rebind_v::other __rebind_va
Definition: types_traits.hpp:157
_Th hash_type
Definition: types_traits.hpp:88
_Alloc::template rebind< value_type > __rebind_v
Definition: types_traits.hpp:190
_Tv value_type
Definition: types_traits.hpp:80
__rebind_a::pointer key_pointer
Definition: types_traits.hpp:273
__rebind_ma::const_pointer mapped_const_pointer
Definition: types_traits.hpp:129
__rebind_m::other __rebind_ma
Definition: types_traits.hpp:228
_Alloc::template rebind< Mapped > __rebind_m
Definition: types_traits.hpp:153
__rebind_va::const_reference const_reference
Definition: types_traits.hpp:242
__rebind_ma::pointer mapped_pointer
Definition: types_traits.hpp:195
__rebind_va::pointer pointer
Definition: types_traits.hpp:200
__rebind_m::other __rebind_ma
Definition: types_traits.hpp:189
stored_data< value_type, size_type > stored_data_type
Definition: types_traits.hpp:244
__rebind_ma::reference mapped_reference
Definition: types_traits.hpp:163
_Alloc::template rebind< Key >::other __rebind_a
Definition: types_traits.hpp:268
_Alloc::size_type size_type
Definition: types_traits.hpp:271
Primary template.
Definition: types_traits.hpp:61
__nothrowcopy::indicator no_throw_indicator
Definition: types_traits.hpp:279
__rebind_va::pointer pointer
Definition: types_traits.hpp:239
__rebind_v::other __rebind_va
Definition: types_traits.hpp:124
integral_constant< int, Store_Hash > store_extra
Definition: types_traits.hpp:278
std::pair< const Key, Mapped > __value_type
Definition: types_traits.hpp:122
__rebind_va::const_reference const_reference
Definition: types_traits.hpp:137
__rebind_m::other __rebind_ma
Definition: types_traits.hpp:154
__rebind_ma::const_reference mapped_const_reference
Definition: types_traits.hpp:164
__rebind_ma::pointer mapped_pointer
Definition: types_traits.hpp:128
__rebind_ma::pointer mapped_pointer
Definition: types_traits.hpp:161
_Alloc::template rebind< null_type > __rebind_m
Definition: types_traits.hpp:227
__rebind_va::reference reference
Definition: types_traits.hpp:241
Key value_type
Definition: types_traits.hpp:185
__rebind_va::const_reference const_reference
Definition: types_traits.hpp:203
__rebind_a::const_pointer key_const_pointer
Definition: types_traits.hpp:274
__rebind_a::reference key_reference
Definition: types_traits.hpp:275
store_extra m_store_extra_indicator
Definition: types_traits.hpp:281
__rebind_va::reference reference
Definition: types_traits.hpp:202
__rebind_va::pointer pointer
Definition: types_traits.hpp:167
Traits for abstract types.
Definition: types_traits.hpp:263
__rebind_ma::const_reference mapped_const_reference
Definition: types_traits.hpp:237
__rebind_va::reference reference
Definition: types_traits.hpp:136
__rebind_va::const_reference const_reference
Definition: types_traits.hpp:170