7 #ifndef INCLUDE_KDTREE_ITERATOR_HPP     8 #define INCLUDE_KDTREE_ITERATOR_HPP    16   template <
typename _Val, 
typename _Ref, 
typename _Ptr>
    19   template<
typename _Val, 
typename _Ref, 
typename _Ptr>
    24   template<
typename _Val>
    29   template<
typename _Val>
    34   template<
typename _Val, 
typename _Ref, 
typename _Ptr>
    39   template<
typename _Val>
    44   template<
typename _Val>
    52     typedef _Node_base::_Base_const_ptr _Base_const_ptr;
    53     _Base_const_ptr _M_node;
    58       : _M_node(__THAT._M_node) {}
    63       if (_M_node->_M_right)
    65             _M_node = _M_node->_M_right;
    66             while (_M_node->_M_left) _M_node = _M_node->_M_left;
    70           _Base_const_ptr __p = _M_node->_M_parent;
    71           while (__p && _M_node == __p->_M_right)
    74               __p = _M_node->_M_parent;
    85       if (!_M_node->_M_parent) 
    87       _M_node = _M_node->_M_right;
    89       else if (_M_node->_M_left)
    91       _Base_const_ptr x = _M_node->_M_left;
    92       while (x->_M_right) x = x->_M_right;
    97       _Base_const_ptr __p = _M_node->_M_parent;
    98       while (__p && _M_node == __p->_M_left) 
   101           __p = _M_node->_M_parent;
   109     template <
size_t const __K, 
typename _Val, 
typename _Acc,
   110           typename _Dist, 
typename _Cmp, 
typename _Alloc>
   114   template <
typename _Val, 
typename _Ref, 
typename _Ptr>
   118       typedef _Val value_type;
   119       typedef _Ref reference;
   120       typedef _Ptr pointer;
   125       typedef std::bidirectional_iterator_tag iterator_category;
   126       typedef ptrdiff_t difference_type;
   130       inline _Iterator(_Link_const_type 
const __N)
   135       _Link_const_type get_raw_node()
 const   137          return _Link_const_type(_M_node);
   143         return _Link_const_type(_M_node)->_M_value;
   149         return &(operator*());
   207   template<
typename _Val, 
typename _Ref, 
typename _Ptr>
   211     { 
return __X._M_node == __Y._M_node; }
   213   template<
typename _Val>
   217     { 
return __X._M_node == __Y._M_node; }
   219   template<
typename _Val>
   223     { 
return __X._M_node == __Y._M_node; }
   225   template<
typename _Val, 
typename _Ref, 
typename _Ptr>
   229     { 
return __X._M_node != __Y._M_node; }
   231   template<
typename _Val>
   235     { 
return __X._M_node != __Y._M_node; }
   237   template<
typename _Val>
   241     { 
return __X._M_node != __Y._M_node; }
   245 #endif // include guard Definition: iterator.hpp:17
Definition: kdtree.hpp:99
Definition: iterator.hpp:49
Defines interfaces for nodes as used by the KDTree class. 
Definition: allocator.hpp:14