IN2OSM  1.0.1
node_iterator< Ch >

Iterator of child nodes of xml_node. More...

#include <rapidxml_iterators.hpp>

Collaboration diagram for node_iterator< Ch >:
Collaboration graph

Public Types

typedef xml_node< Ch > value_type
 
typedef xml_node< Ch > & reference
 
typedef xml_node< Ch > * pointer
 
typedef std::ptrdiff_t difference_type
 
typedef std::bidirectional_iterator_tag iterator_category
 

Public Member Functions

 node_iterator ()
 
 node_iterator (xml_node< Ch > *node)
 
reference operator* () const
 
pointer operator-> () const
 
node_iteratoroperator++ ()
 
node_iterator operator++ (int)
 
node_iteratoroperator-- ()
 
node_iterator operator-- (int)
 
bool operator== (const node_iterator< Ch > &rhs)
 
bool operator!= (const node_iterator< Ch > &rhs)
 

Private Attributes

xml_node< Ch > * m_node
 

Detailed Description

template<class Ch>
class rapidxml::node_iterator< Ch >

Iterator of child nodes of xml_node.

Definition at line 16 of file rapidxml_iterators.hpp.

Member Typedef Documentation

◆ difference_type

typedef std::ptrdiff_t difference_type

Definition at line 24 of file rapidxml_iterators.hpp.

◆ iterator_category

typedef std::bidirectional_iterator_tag iterator_category

Definition at line 25 of file rapidxml_iterators.hpp.

◆ pointer

typedef xml_node<Ch>* pointer

Definition at line 23 of file rapidxml_iterators.hpp.

◆ reference

typedef xml_node<Ch>& reference

Definition at line 22 of file rapidxml_iterators.hpp.

◆ value_type

typedef xml_node<Ch> value_type

Definition at line 21 of file rapidxml_iterators.hpp.

Constructor & Destructor Documentation

◆ node_iterator() [1/2]

node_iterator ( )
inline

Definition at line 27 of file rapidxml_iterators.hpp.

28  : m_node(0)
29  {
30  }

◆ node_iterator() [2/2]

node_iterator ( xml_node< Ch > *  node)
inline

Definition at line 32 of file rapidxml_iterators.hpp.

33  : m_node(node->first_node())
34  {
35  }

Member Function Documentation

◆ operator!=()

bool operator!= ( const node_iterator< Ch > &  rhs)
inline

Definition at line 82 of file rapidxml_iterators.hpp.

83  {
84  return m_node != rhs.m_node;
85  }

◆ operator*()

reference operator* ( ) const
inline

Definition at line 37 of file rapidxml_iterators.hpp.

38  {
39  assert(m_node);
40  return *m_node;
41  }

◆ operator++() [1/2]

node_iterator& operator++ ( )
inline

Definition at line 49 of file rapidxml_iterators.hpp.

50  {
51  assert(m_node);
52  m_node = m_node->next_sibling();
53  return *this;
54  }

◆ operator++() [2/2]

node_iterator operator++ ( int  )
inline

Definition at line 56 of file rapidxml_iterators.hpp.

57  {
58  node_iterator tmp = *this;
59  ++this;
60  return tmp;
61  }

◆ operator--() [1/2]

node_iterator& operator-- ( )
inline

Definition at line 63 of file rapidxml_iterators.hpp.

64  {
65  assert(m_node && m_node->previous_sibling());
66  m_node = m_node->previous_sibling();
67  return *this;
68  }

◆ operator--() [2/2]

node_iterator operator-- ( int  )
inline

Definition at line 70 of file rapidxml_iterators.hpp.

71  {
72  node_iterator tmp = *this;
73  ++this;
74  return tmp;
75  }

◆ operator->()

pointer operator-> ( ) const
inline

Definition at line 43 of file rapidxml_iterators.hpp.

44  {
45  assert(m_node);
46  return m_node;
47  }

◆ operator==()

bool operator== ( const node_iterator< Ch > &  rhs)
inline

Definition at line 77 of file rapidxml_iterators.hpp.

78  {
79  return m_node == rhs.m_node;
80  }

Member Data Documentation

◆ m_node

xml_node<Ch>* m_node
private

Definition at line 89 of file rapidxml_iterators.hpp.


The documentation for this class was generated from the following file: