15 #ifndef Om_Source_SingletonSource_
24 template <typename ThisItem>
27 Om::Source::SingletonSource<ThisItem>
32 inline Type_::SingletonSource():
36 inline Type_::SingletonSource(ThisItem & theItem):
40 inline Type_ & Type_::operator =(SingletonSource theSingletonSource) {
41 this->Swap(theSingletonSource);
46 inline bool Type_::operator !()
const {
47 return !this->thisItem;
51 inline ThisItem & Type_::operator *()
const {
52 assert(this->thisItem);
53 return *this->thisItem;
57 inline bool Type_::Equals(SingletonSource
const & theSingletonSource)
const {
58 return this->thisItem == theSingletonSource.thisItem;
62 inline void Type_::Pop() {
63 assert(this->thisItem);
68 inline void Type_::Swap(SingletonSource & theSingletonSource) {
71 theSingletonSource.thisItem
81 template <typename TheItem>
84 Om::Source::SingletonSource<TheItem>
88 Type_
const & theFirst,
89 Type_
const & theSecond
91 return theFirst.Equals(theSecond);
96 Type_
const & theFirst,
97 Type_
const & theSecond
99 return !theFirst.Equals(theSecond);
109 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 &)