Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT > Class Template Reference

template<bool IsConstT>
class ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >

Iterates over the subtree of fields in depth-first search order.

Definition at line 688 of file RFieldBase.hxx.

Classes

struct  Position

Public Types

using difference_type = std::ptrdiff_t
using iterator = RSchemaIteratorTemplate<IsConstT>
using iterator_category = std::forward_iterator_tag
using pointer = std::conditional_t<IsConstT, const RFieldBase *, RFieldBase *>
using reference = std::conditional_t<IsConstT, const RFieldBase &, RFieldBase &>
using value_type = std::conditional_t<IsConstT, const RFieldBase, RFieldBase>

Public Member Functions

 RSchemaIteratorTemplate ()
 RSchemaIteratorTemplate (pointer val, int idxInParent)
 ~RSchemaIteratorTemplate ()
void Advance ()
 Given that the iterator points to a valid field which is not the end iterator, go to the next field in depth-first search order.
bool operator!= (const iterator &rh) const
reference operator* () const
iteratoroperator++ ()
iterator operator++ (int)
pointer operator-> () const
bool operator== (const iterator &rh) const

Private Attributes

std::vector< PositionfStack
 The stack of nodes visited when walking down the tree of fields.

Member Typedef Documentation

◆ difference_type

template<bool IsConstT>
using ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::difference_type = std::ptrdiff_t

Definition at line 703 of file RFieldBase.hxx.

◆ iterator

template<bool IsConstT>
using ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::iterator = RSchemaIteratorTemplate<IsConstT>

Definition at line 701 of file RFieldBase.hxx.

◆ iterator_category

template<bool IsConstT>
using ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::iterator_category = std::forward_iterator_tag

Definition at line 702 of file RFieldBase.hxx.

◆ pointer

template<bool IsConstT>
using ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::pointer = std::conditional_t<IsConstT, const RFieldBase *, RFieldBase *>

Definition at line 705 of file RFieldBase.hxx.

◆ reference

template<bool IsConstT>
using ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::reference = std::conditional_t<IsConstT, const RFieldBase &, RFieldBase &>

Definition at line 706 of file RFieldBase.hxx.

◆ value_type

template<bool IsConstT>
using ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::value_type = std::conditional_t<IsConstT, const RFieldBase, RFieldBase>

Definition at line 704 of file RFieldBase.hxx.

Constructor & Destructor Documentation

◆ RSchemaIteratorTemplate() [1/2]

template<bool IsConstT>
ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::RSchemaIteratorTemplate ( )
inline

Definition at line 708 of file RFieldBase.hxx.

◆ RSchemaIteratorTemplate() [2/2]

template<bool IsConstT>
ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::RSchemaIteratorTemplate ( pointer val,
int idxInParent )
inline

Definition at line 709 of file RFieldBase.hxx.

◆ ~RSchemaIteratorTemplate()

template<bool IsConstT>
ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::~RSchemaIteratorTemplate ( )
inline

Definition at line 710 of file RFieldBase.hxx.

Member Function Documentation

◆ Advance()

template<bool IsConstT>
void ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::Advance ( )
inline

Given that the iterator points to a valid field which is not the end iterator, go to the next field in depth-first search order.

Definition at line 713 of file RFieldBase.hxx.

◆ operator!=()

template<bool IsConstT>
bool ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::operator!= ( const iterator & rh) const
inline

Definition at line 749 of file RFieldBase.hxx.

◆ operator*()

template<bool IsConstT>
reference ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::operator* ( ) const
inline

Definition at line 746 of file RFieldBase.hxx.

◆ operator++() [1/2]

template<bool IsConstT>
iterator & ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::operator++ ( )
inline

Definition at line 741 of file RFieldBase.hxx.

◆ operator++() [2/2]

template<bool IsConstT>
iterator ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::operator++ ( int )
inline

Definition at line 735 of file RFieldBase.hxx.

◆ operator->()

template<bool IsConstT>
pointer ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::operator-> ( ) const
inline

Definition at line 747 of file RFieldBase.hxx.

◆ operator==()

template<bool IsConstT>
bool ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::operator== ( const iterator & rh) const
inline

Definition at line 748 of file RFieldBase.hxx.

Member Data Documentation

◆ fStack

template<bool IsConstT>
std::vector<Position> ROOT::RFieldBase::RSchemaIteratorTemplate< IsConstT >::fStack
private

The stack of nodes visited when walking down the tree of fields.

Definition at line 698 of file RFieldBase.hxx.