41#ifdef PB_DS_CLASS_C_DEC
48assert_valid(
const char* __file,
int __line)
const
50 PB_DS_DEBUG_VERIFY(m_p_root == 0 || m_p_root->m_p_prev_or_parent == 0);
53 assert_node_consistent(m_p_root, Single_Link_Roots, __file, __line);
54 assert_size(__file, __line);
55 assert_iterators(__file, __line);
61assert_node_consistent(node_const_pointer p_nd,
bool single_link,
62 const char* __file,
int __line)
const
67 assert_node_consistent(p_nd->m_p_l_child,
false, __file, __line);
68 assert_node_consistent(p_nd->m_p_next_sibling, single_link, __file, __line);
71 PB_DS_DEBUG_VERIFY(p_nd->m_p_prev_or_parent == 0);
72 else if (p_nd->m_p_next_sibling != 0)
73 PB_DS_DEBUG_VERIFY(p_nd->m_p_next_sibling->m_p_prev_or_parent == p_nd);
75 if (p_nd->m_p_l_child == 0)
78 node_const_pointer p_child = p_nd->m_p_l_child;
81 node_const_pointer p_next_child = p_child->m_p_next_sibling;
82 PB_DS_DEBUG_VERIFY(!Cmp_Fn::operator()(p_nd->m_value, p_child->m_value));
83 p_child = p_next_child;
85 PB_DS_DEBUG_VERIFY(p_nd->m_p_l_child->m_p_prev_or_parent == p_nd);
91assert_iterators(
const char* __file,
int __line)
const
99assert_size(
const char* __file,
int __line)
const
101 PB_DS_DEBUG_VERIFY(size_from_node(m_p_root) == m_size);
105typename PB_DS_CLASS_C_DEC::size_type
107size_under_node(node_const_pointer p_nd)
108{
return 1 + size_from_node(p_nd->m_p_l_child); }
111typename PB_DS_CLASS_C_DEC::size_type
113size_from_node(node_const_pointer p_nd)
118 ret += 1 + size_from_node(p_nd->m_p_l_child);
119 p_nd = p_nd->m_p_next_sibling;
125typename PB_DS_CLASS_C_DEC::size_type
127degree(node_const_pointer p_nd)
130 node_const_pointer p_child = p_nd->m_p_l_child;
134 p_child = p_child->m_p_next_sibling;
_Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
_Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.
constexpr iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.
constexpr auto size(const _Container &__cont) noexcept(noexcept(__cont.size())) -> decltype(__cont.size())
Return the size of a container.