46 assert_valid(
const char* __file, 
int __line)
 const 
   48   PB_DS_DEBUG_VERIFY(m_p_root == 0 || m_p_root->m_p_prev_or_parent == 0);
 
   51     assert_node_consistent(m_p_root, Single_Link_Roots, __file, __line);
 
   52   assert_size(__file, __line);
 
   53   assert_iterators(__file, __line);
 
   59 assert_node_consistent(node_const_pointer p_nd, 
bool single_link,
 
   60                const char* __file, 
int __line)
 const 
   65   assert_node_consistent(p_nd->m_p_l_child, 
false, __file, __line);
 
   66   assert_node_consistent(p_nd->m_p_next_sibling, single_link, __file, __line);
 
   69     PB_DS_DEBUG_VERIFY(p_nd->m_p_prev_or_parent == 0);
 
   70   else if (p_nd->m_p_next_sibling != 0)
 
   71     PB_DS_DEBUG_VERIFY(p_nd->m_p_next_sibling->m_p_prev_or_parent == p_nd);
 
   73   if (p_nd->m_p_l_child == 0)
 
   76   node_const_pointer p_child = p_nd->m_p_l_child;
 
   79       node_const_pointer p_next_child = p_child->m_p_next_sibling;
 
   80       PB_DS_DEBUG_VERIFY(!Cmp_Fn::operator()(p_nd->m_value, p_child->m_value));
 
   81       p_child = p_next_child;
 
   83   PB_DS_DEBUG_VERIFY(p_nd->m_p_l_child->m_p_prev_or_parent == p_nd);
 
   89 assert_iterators(
const char* __file, 
int __line)
 const 
   97 assert_size(
const char* __file, 
int __line)
 const 
   99   PB_DS_DEBUG_VERIFY(size_from_node(m_p_root) == m_size);
 
  103 typename PB_DS_CLASS_C_DEC::size_type
 
  105 size_under_node(node_const_pointer p_nd)
 
  106 { 
return 1 + size_from_node(p_nd->m_p_l_child); }
 
  109 typename PB_DS_CLASS_C_DEC::size_type
 
  111 size_from_node(node_const_pointer p_nd)
 
  116       ret += 1 + size_from_node(p_nd->m_p_l_child);
 
  117       p_nd = p_nd->m_p_next_sibling;
 
  123 typename PB_DS_CLASS_C_DEC::size_type
 
  125 degree(node_const_pointer p_nd)
 
  128   node_const_pointer p_child = p_nd->m_p_l_child;
 
  132       p_child = p_child->m_p_next_sibling;
 
auto end(_Container &__cont) -> decltype(__cont.end())
Return an iterator pointing to one past the last element of the container. 
auto begin(_Container &__cont) -> decltype(__cont.begin())
Return an iterator pointing to the first element of the container. 
iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic.