Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JLANG::JBidirectionalIterator< T > Class Template Referenceabstract

Template interface for method bool decrement(). More...

#include <JBidirectionalIterator.hh>

Inheritance diagram for JLANG::JBidirectionalIterator< T >:
JLANG::JForwardIterator< T > JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< iterator > JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< reverse_iterator > JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< T > JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::iterator JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::reverse_iterator

Public Member Functions

virtual ~JBidirectionalIterator ()
 Virtual destructor.
 
T & operator-- ()
 Decrement iterator.
 
operator-- (int)
 Decrement iterator.
 
T & operator-= (const size_t offset)
 Regress iterator.
 
virtual bool decrement ()=0
 Decrement iterator.
 
virtual bool decrement (const size_t offset)
 Decrement iterator.
 
T & operator++ ()
 Increment iterator.
 
operator++ (int)
 Increment iterator.
 
T & operator+= (const size_t offset)
 Advance iterator.
 
virtual bool increment ()=0
 Increment iterator.
 
virtual bool increment (const size_t offset)
 Increment iterator.
 

Friends

operator- (const T &object, const size_t offset)
 Regress operator.
 

Detailed Description

template<class T>
class JLANG::JBidirectionalIterator< T >

Template interface for method bool decrement().

This interface implements the pre-fix and post-fix operators –.

Definition at line 20 of file JBidirectionalIterator.hh.

Constructor & Destructor Documentation

◆ ~JBidirectionalIterator()

template<class T >
virtual JLANG::JBidirectionalIterator< T >::~JBidirectionalIterator ( )
inlinevirtual

Virtual destructor.

Definition at line 27 of file JBidirectionalIterator.hh.

28 {}

Member Function Documentation

◆ operator--() [1/2]

template<class T >
T & JLANG::JBidirectionalIterator< T >::operator-- ( )
inline

Decrement iterator.

Returns
this iterator

Definition at line 36 of file JBidirectionalIterator.hh.

37 {
38 this->decrement();
39
40 return static_cast<T&>(*this);
41 }
virtual bool decrement()=0
Decrement iterator.

◆ operator--() [2/2]

template<class T >
T JLANG::JBidirectionalIterator< T >::operator-- ( int )
inline

Decrement iterator.

Returns
decrement iterator

Definition at line 49 of file JBidirectionalIterator.hh.

50 {
51 const T tmp(static_cast<const T&>(*this));
52
53 this->decrement();
54
55 return tmp;
56 }

◆ operator-=()

template<class T >
T & JLANG::JBidirectionalIterator< T >::operator-= ( const size_t offset)
inline

Regress iterator.

Parameters
offsetoffset
Returns
iterator

Definition at line 65 of file JBidirectionalIterator.hh.

66 {
67 this->decrement(offset);
68
69 return static_cast<T&>(*this);
70 }

◆ decrement() [1/2]

◆ decrement() [2/2]

template<class T >
virtual bool JLANG::JBidirectionalIterator< T >::decrement ( const size_t offset)
inlinevirtual

Decrement iterator.

Parameters
offsetoffset
Returns
true if decremented; else false

Reimplemented in JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< T >, JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< iterator >, and JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< reverse_iterator >.

Definition at line 104 of file JBidirectionalIterator.hh.

105 {
106 size_t i = 0;
107
108 while (i != offset && this->decrement()) {
109 ++i;
110 }
111
112 return i == offset;
113 }

◆ operator++() [1/2]

template<class T >
T & JLANG::JForwardIterator< T >::operator++ ( )
inlineinherited

Increment iterator.

Returns
this iterator

Definition at line 34 of file JForwardIterator.hh.

35 {
36 this->increment();
37
38 return static_cast<T&>(*this);
39 }
virtual bool increment()=0
Increment iterator.

◆ operator++() [2/2]

template<class T >
T JLANG::JForwardIterator< T >::operator++ ( int )
inlineinherited

Increment iterator.

Returns
previous iterator

Definition at line 47 of file JForwardIterator.hh.

48 {
49 const T tmp(static_cast<const T&>(*this));
50
51 this->increment();
52
53 return tmp;
54 }

◆ operator+=()

template<class T >
T & JLANG::JForwardIterator< T >::operator+= ( const size_t offset)
inlineinherited

Advance iterator.

Parameters
offsetoffset
Returns
iterator

Definition at line 63 of file JForwardIterator.hh.

64 {
65 this->increment(offset);
66
67 return static_cast<T&>(*this);
68 }

◆ increment() [1/2]

template<class T >
virtual bool JLANG::JForwardIterator< T >::increment ( )
pure virtualinherited

Increment iterator.

Returns
true if incremented; else false

Implemented in JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< T >, JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< iterator >, JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< reverse_iterator >, JTOOLS::JHashMap< JTypeList< JHead_t, JNullType >, JValue_t, JEvaluator_t >::super_const_iterator, JTOOLS::JHashMap< JTypeList< JHead_t, JNullType >, JValue_t, JEvaluator_t >::super_iterator, JTOOLS::JHashMap< JTypeList< JHead_t, JTail_t >, JValue_t, JEvaluator_t >::super_const_iterator, JTOOLS::JHashMap< JTypeList< JHead_t, JTail_t >, JValue_t, JEvaluator_t >::super_iterator, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JLANG::JNullType >, JDistance_t >::iterator_helper< iterator_type, ordinate_type >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JLANG::JNullType >, JDistance_t >::iterator_helper< const_iterator, const ordinate_type & >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JLANG::JNullType >, JDistance_t >::iterator_helper< const_reverse_iterator, const ordinate_type & >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JLANG::JNullType >, JDistance_t >::iterator_helper< iterator, ordinate_type & >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JLANG::JNullType >, JDistance_t >::iterator_helper< reverse_iterator, ordinate_type & >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JTail_t >, JDistance_t >::iterator_helper< first_iterator, second_iterator >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JTail_t >, JDistance_t >::iterator_helper< const_iterator, mapped_type::super_const_iterator >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JTail_t >, JDistance_t >::iterator_helper< iterator, mapped_type::super_iterator >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JTail_t >, JDistance_t >::reverse_iterator_helper< first_iterator, second_iterator >, JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JTail_t >, JDistance_t >::reverse_iterator_helper< const_reverse_iterator, mapped_type::super_const_reverse_iterator >, and JTOOLS::JMultiMap< JAbscissa_t, JOrdinate_t, JMapList< JHead_t, JTail_t >, JDistance_t >::reverse_iterator_helper< reverse_iterator, mapped_type::super_reverse_iterator >.

◆ increment() [2/2]

template<class T >
virtual bool JLANG::JForwardIterator< T >::increment ( const size_t offset)
inlinevirtualinherited

Increment iterator.

Parameters
offsetoffset
Returns
true if incremented; else false

Reimplemented in JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< T >, JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< iterator >, and JSUPPORT::JTreeScannerInterface< JClass_t, JNullType >::basic_iterator< reverse_iterator >.

Definition at line 102 of file JForwardIterator.hh.

103 {
104 size_t i = 0;
105
106 while (i != offset && this->increment()) {
107 ++i;
108 }
109
110 return i == offset;
111 }

Friends And Related Symbol Documentation

◆ operator-

template<class T >
T operator- ( const T & object,
const size_t offset )
friend

Regress operator.

Parameters
objectiterator
offsetoffset
Returns
iterator

Definition at line 80 of file JBidirectionalIterator.hh.

81 {
82 T tmp(object);
83
84 tmp.decrement(offset);
85
86 return tmp;
87 }

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