alternative Standard Libary  0.29.8
std::node_ptr< T, I > Template-Klassenreferenz

#include <node_ptr.hpp>

Öffentliche Typen

using name_type = I
 
using value_type = T
 
using self_type = node_ptr< T, I >
 

Öffentliche Methoden

 node (name_type strName, value_type *data, self_type *pParent)
 
 ~node ()
 
self_typeadd_child (self_type *pChild)
 
self_typeadd_sibling (self_type *pSibling)
 
self_typefind (name_type index)
 
self_typeroot ()
 
value_typeget ()
 

Ausführliche Beschreibung

template<typename T, typename I = std::string>
class std::node_ptr< T, I >

Dokumentation der benutzerdefinierten Datentypen

◆ name_type

template<typename T , typename I = std::string>
using std::node_ptr< T, I >::name_type = I

◆ self_type

template<typename T , typename I = std::string>
using std::node_ptr< T, I >::self_type = node_ptr<T,I>

◆ value_type

template<typename T , typename I = std::string>
using std::node_ptr< T, I >::value_type = T

Beschreibung der Konstruktoren und Destruktoren

◆ ~node()

template<typename T , typename I = std::string>
std::node_ptr< T, I >::~node ( )

Dokumentation der Elementfunktionen

◆ add_child()

template<typename T , typename I = std::string>
self_type* std::node_ptr< T, I >::add_child ( self_type pChild)
inline
58  {
59  if(! m_pChild) { //erstes Kind
60  m_pChild = pChild;
61  m_pChild->m_pParent = this;
62  }
63  else
64  return m_pChild->add_child(pChild);
65  return m_pChild;
66 
67  }
self_type * add_child(self_type *pChild)
Definition: node_ptr.hpp:58

◆ add_sibling()

template<typename T , typename I = std::string>
self_type* std::node_ptr< T, I >::add_sibling ( self_type pSibling)
inline
68  {
69  if(!m_pSibling) {//Erstes Geschwister {
70  m_pSibling = pSibling;
71  m_pSibling->m_pParent = this->m_pParent;
72  }
73  else //Probieren wir's bei den Geschwistern
74  return m_pSibling->add_sibling(pSibling);
75  return m_pSibling;
76  }
self_type * add_sibling(self_type *pSibling)
Definition: node_ptr.hpp:68

◆ find()

template<typename T , typename I = std::string>
self_type* std::node_ptr< T, I >::find ( name_type  index)
inline
78  {
79  if(m_index == index)
80  return this;
81  if(m_pSibling) {
82  self_type* praNode = m_pSibling->find(index);
83  if(praNode) return praNode;
84  }
85  //Kinder
86  if(m_pChild) {
87  self_type* praNode = m_pChild->find(index);
88  if(praNode) return praNode;
89  }
90  return 0;
91  }
node_ptr< T, I > self_type
Definition: node_ptr.hpp:47
self_type * find(name_type index)
Definition: node_ptr.hpp:78

◆ get()

template<typename T , typename I = std::string>
value_type& std::node_ptr< T, I >::get ( )
inline
97  {
98  return *m_data;
99  }

◆ node()

template<typename T , typename I = std::string>
std::node_ptr< T, I >::node ( name_type  strName,
value_type data,
self_type pParent 
)
inlineexplicit
49  {
50  m_index = strName;
51  m_pParent = pParent;
52  m_pChild = NULL;
53  m_pSibling = NULL;
54  m_data = data;
55  }

◆ root()

template<typename T , typename I = std::string>
self_type* std::node_ptr< T, I >::root ( )
inline
92  {
93  if(m_pParent) return m_pParent->root();
94  return this;
95  }
self_type * root()
Definition: node_ptr.hpp:92

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: