15 #ifndef Om_Source_IteratorPairSource_
26 typename ThisIterator \
30 Om::Source::IteratorPairSource< \
38 inline Type_::IteratorPairSource(
39 ThisIterator theCurrent,
40 ThisIterator
const theEnd
42 thisCurrent(theCurrent),
46 inline Type_ & Type_::operator =(IteratorPairSource theIteratorPairSource) {
47 this->Swap(theIteratorPairSource);
52 inline bool Type_::operator !()
const {
53 return this->thisEnd == this->thisCurrent;
57 inline ThisItem & Type_::operator *()
const {
58 assert(this->thisEnd != this->thisCurrent);
59 return *this->thisCurrent;
63 inline bool Type_::Equals(IteratorPairSource
const & theIteratorPairSource)
const {
64 return this->thisCurrent == theIteratorPairSource.thisCurrent;
68 inline void Type_::End() {
69 this->thisCurrent = this->thisEnd;
73 inline void Type_::Pop() {
74 assert(this->thisEnd != this->thisCurrent);
79 inline void Type_::Swap(IteratorPairSource & theIteratorPairSource) {
82 theIteratorPairSource.thisCurrent
86 theIteratorPairSource.thisEnd
98 typename TheIterator \
102 Om::Source::IteratorPairSource< \
109 Type_
const & theFirst,
110 Type_
const & theSecond
112 return theFirst.Equals(theSecond);
117 Type_
const & theFirst,
118 Type_
const & theSecond
120 return !theFirst.Equals(theSecond);
130 theFirst.Swap(theSecond);
bool operator==(CodePointSource< TheCodeUnitIterator > const &, CodePointSource< TheCodeUnitIterator > const &)
bool operator!=(CodePointSource< TheCodeUnitIterator > const &, CodePointSource< TheCodeUnitIterator > const &)
void swap(Om::Language::Expression &, Om::Language::Expression &)