15 #ifndef Om_Source_ContainerFrontSource_
26 typename ThisContainer \
30 Om::Source::ContainerFrontSource< \
38 inline Type_::ContainerFrontSource(ThisContainer & theContainer):
39 thisContainer(theContainer) {}
42 inline Type_ & Type_::operator =(ContainerFrontSource theContainerFrontSource) {
43 this->Swap(theContainerFrontSource);
48 inline bool Type_::operator !()
const {
49 return this->thisContainer.empty();
53 inline ThisItem & Type_::operator *()
const {
55 !this->thisContainer.empty()
57 return this->thisContainer.front();
61 inline bool Type_::Equals(ContainerFrontSource
const & theContainerFrontSource)
const {
63 &this->thisContainer == &theContainerFrontSource.thisContainer ||
65 this->thisContainer.empty() &&
66 theContainerFrontSource.thisContainer.empty()
72 inline void Type_::Pop() {
74 !this->thisContainer.empty()
76 this->thisContainer.pop_front();
80 inline void Type_::Swap(ContainerFrontSource & theContainerFrontSource) {
83 theContainerFrontSource.thisContainer
95 typename TheContainer \
99 Om::Source::ContainerFrontSource< \
106 Type_
const & theFirst,
107 Type_
const & theSecond
109 return theFirst.Equals(theSecond);
114 Type_
const & theFirst,
115 Type_
const & theSecond
117 return !theFirst.Equals(theSecond);
127 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 &)