90 class left_child_next_sibling_heap :
public Cmp_Fn
101 typedef typename alloc_traits::allocator_type node_allocator;
103 typedef typename alloc_traits::pointer node_pointer;
104 typedef typename alloc_traits::const_pointer node_const_pointer;
105 typedef Node_Metadata node_metadata;
113 simple_value = is_simple<Value_Type>::value
116 typedef integral_constant<int, simple_value> no_throw_copies_t;
120 typedef typename _Alloc::size_type size_type;
121 typedef typename _Alloc::difference_type difference_type;
122 typedef Value_Type value_type;
124 typedef typename __rebind_v::pointer pointer;
125 typedef typename __rebind_v::const_pointer const_pointer;
126 typedef typename __rebind_v::reference reference;
127 typedef typename __rebind_v::const_reference const_reference;
130 point_const_iterator;
132 typedef point_const_iterator point_iterator;
137 typedef const_iterator iterator;
138 typedef Cmp_Fn cmp_fn;
139 typedef _Alloc allocator_type;
141 left_child_next_sibling_heap();
142 left_child_next_sibling_heap(
const Cmp_Fn&);
143 left_child_next_sibling_heap(
const left_child_next_sibling_heap&);
146 swap(PB_DS_CLASS_C_DEC&);
148 ~left_child_next_sibling_heap();
150 _GLIBCXX_NODISCARD
inline bool
168 inline const_iterator
174 inline const_iterator
180#ifdef PB_DS_LC_NS_HEAP_TRACE_
187 get_new_node_for_insert(const_reference);
190 make_child_of(node_pointer, node_pointer);
193 value_swap(left_child_next_sibling_heap&);
195 inline static node_pointer
196 parent(node_pointer);
199 swap_with_parent(node_pointer, node_pointer);
202 bubble_to_top(node_pointer);
205 actual_erase_node(node_pointer);
208 clear_imp(node_pointer);
213 template<
typename Pred>
219 assert_valid(
const char*,
int)
const;
222 assert_node_consistent(node_const_pointer,
bool,
const char*,
int)
const;
225 size_under_node(node_const_pointer);
228 degree(node_const_pointer);
231#ifdef PB_DS_LC_NS_HEAP_TRACE_
233 trace_node(node_const_pointer, size_type);
239 assert_iterators(
const char*,
int)
const;
242 assert_size(
const char*,
int)
const;
245 size_from_node(node_const_pointer);
249 recursive_copy_node(node_const_pointer);
252 get_new_node_for_insert(const_reference, false_type);
255 get_new_node_for_insert(const_reference, true_type);
257#ifdef PB_DS_LC_NS_HEAP_TRACE_
258 template<
typename Metadata_>
260 trace_node_metadata(node_const_pointer, type_to_type<Metadata_>);
263 trace_node_metadata(node_const_pointer, type_to_type<null_type>);
266 static node_allocator s_node_allocator;
267 static no_throw_copies_t s_no_throw_copies_ind;
270 node_pointer m_p_root;