![]() |
zeep::xml::iterator_impl — generic iterator class.
// In header: <zeep/xml/node.hpp> template<typename NodeType, typename ContainerNodeType> class iterator_impl { public: // types typedef ; typedef ; typedef basic_node_list< ; typedef ; typedef ; typedef ; typedef ; typedef ; // construct/copy/destruct () = ; (iterator_impl &) = ; template<typename OtherNodeType, typename OtherContainerNodeType> (iterator_impl< ); (container_type &); (container_type &, ); (); (iterator_impl &&) ; template<typename Iterator, = > (); iterator_impl & (iterator_impl &); iterator_impl & (iterator_impl &&) ; template<typename Iterator, = > iterator_impl & (); // public member functions (); () ; iterator_impl & (); iterator_impl (); iterator_impl & (); iterator_impl (); (iterator_impl &) ; (iterator_impl &) ; template<typename RNodeType> () ; template<typename RNodeType> () ; iterator_impl & (); iterator_impl & (); iterator_impl () ; iterator_impl () ; (iterator_impl &) ; () ; (); // private member functions () ; (); (); (); (); (); };
We can have iterators that point to nodes, elements and attributes. Iterating over nodes is simply following next/prev. But iterating elements is a bit more difficult, since you then have to skip nodes in between that are not an element, like comments or text.
iterator_impl
public
construct/copy/destruct() = ;
(iterator_impl & i) = ;
template<typename OtherNodeType, typename OtherContainerNodeType> (iterator_impl< i);copy constructor, kind of
(container_type & container);create iterator pointing to begin of parent element
(container_type & container, current);create iterator pointing to end of parent element
( current);constructor taking a node pointer
(iterator_impl && i) ;
template<typename Iterator, = > ( i);
iterator_impl & (iterator_impl & i);
iterator_impl & (iterator_impl && i) ;
template<typename Iterator, = > iterator_impl & ( i);
iterator_impl
public member functions();
() ;
iterator_impl & ();
iterator_impl ();
iterator_impl & ();
iterator_impl ();
(iterator_impl & other) ;
(iterator_impl & other) ;
template<typename RNodeType> ( n) ;
template<typename RNodeType> ( n) ;
iterator_impl & ( i);
iterator_impl & ( i);
iterator_impl ( i) ;
iterator_impl ( i) ;
(iterator_impl & other) ;
() ;
();