Om
default_source.hpp
Go to the documentation of this file.
1 
15 #ifndef Om_Source_DefaultSource_
16 
17  #define Om_Source_DefaultSource_ \
18  Om::Source::DefaultSource
19 
20  #include "om/source/source.hpp"
21 
22  #ifndef Om_Macro_Precompilation_
23 
24  #include <iterator>
25 
26  #endif
27 
28 namespace Om {
29 
30  namespace Source {
31 
32  // MARK: - Om::Source::DefaultSource
33 
38  template <
39  typename ThisItem,
40  typename ThisImplementation
41  >
43  public Source<ThisItem>,
44  public std::iterator<
45  std::input_iterator_tag,
46  ThisItem
47  > {
48 
49  public: // MARK: public (non-static)
50 
51  virtual ~DefaultSource() = 0;
52 
61  ThisImplementation & operator ++();
62 
69  ThisImplementation operator ++(int);
70 
77  virtual bool Equals(
78  Source<ThisItem> const &
79  ) const;
80 
85  bool Equals(ThisImplementation const &) const;
86 
87  private: // MARK: private (non-static)
88 
90 
91  };
92 
93  }
94 
95 }
96 
98 
99 #endif
A partial implementation of Source.
virtual bool Equals(Source< ThisItem > const &) const
ThisImplementation & operator++()
Pulls the next item from the Source.
bool Equals(ThisImplementation const &) const
DefaultSource & operator=(DefaultSource const &)
Any object that items can be pulled from.
Definition: source.hpp:31
Om source file.
The Om library.
Definition: code_point.hpp:26
Om header file.