1#ifndef DCHAIN_PARTIALCANDIDATEITR_H
2#define DCHAIN_PARTIALCANDIDATEITR_H
43template <
class Cand
idateClass >
class LabeledCandidate ;
44template <
class Cand
idateClass >
class LabeledCandidateList ;
46template <
class Cand
idateClass >
47class PartialCandidateItr
50 friend class LabeledCandidateList< CandidateClass > ;
122template <
class Cand
idateClass >
126 return ( m_indexedCandidates ) ;
129template <
class Cand
idateClass >
137template <
class Cand
idateClass >
148template <
class Cand
idateClass >
154template <
class Cand
idateClass >
157 m_indexedCandidates( aOtherItr.indexedCandidates() ) ,
158 m_index( aOtherItr.index() ) ,
159 m_label( aOtherItr.label() )
163template <
class Cand
idateClass >
175 if ( ( m_index <
size_type( (*m_indexedCandidates).size() ) ) &&
176 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label )
186template <
class Cand
idateClass >
190 m_indexedCandidates = aOtherItr.indexedCandidates() ;
191 m_index = aOtherItr.index() ;
192 m_label = aOtherItr.label() ;
200template <
class Cand
idateClass >
213 ( m_index <
size_type( (*m_indexedCandidates).size() ) &&
214 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label )
221template <
class Cand
idateClass >
233 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) &&
234 ( m_index <
size_type( (*m_indexedCandidates).size() ) ) ) {
240template <
class Cand
idateClass >
247 if ( 0 != m_index ) {
256 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) &&
263template <
class Cand
idateClass >
271 if ( 0 != m_index ) {
280 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) &&
291template <
class Cand
idateClass >
295 return ( (*m_indexedCandidates).labeledCandidateClass( m_index ) ) ;
298template <
class Cand
idateClass >
304 return ( ( m_index == aOtherItr.index() ) &&
305 ( m_indexedCandidates == aOtherItr.indexedCandidates() ) &&
306 ( m_label == aOtherItr.label() ) ) ;
309template <
class Cand
idateClass >
315 return ( ( m_index != aOtherItr.index() ) ||
316 ( m_indexedCandidates != aOtherItr.indexedCandidates() ) ||
317 ( m_label != aOtherItr.label() ) ) ;
const PartialCandidateItr< CandidateClass > & operator=(const PartialCandidateItr< CandidateClass > &aOtherItr)
const LabeledCandidate< CandidateClass > & operator*() const
dchain::candidateitr::difference_type difference_type
bool operator==(const PartialCandidateItr< CandidateClass > &aOtherItr) const
LabeledCandidate< CandidateClass > value_type
PartialCandidateItr< CandidateClass > & operator--()
dchain::candidateitr::size_type size_type
PartialCandidateItr< CandidateClass > operator++(int)
conjugation::Label label() const
PartialCandidateItr(const PartialCandidateItr< CandidateClass > &aOtherItr)
bool operator!=(const PartialCandidateItr< CandidateClass > &aOtherItr) const
IndexedLabeledCandidates< CandidateClass > * indexedCandidates() const
virtual ~PartialCandidateItr()
PartialCandidateItr(const IndexedLabeledCandidates< CandidateClass > *aList, const size_type aIndex, const conjugation::Label aLabel)
std::bidirectional_iterator_tag iterator_category
PartialCandidateItr< CandidateClass > & operator++()
PartialCandidateItr< CandidateClass > operator--(int)