MDStressLab++
range.h
Go to the documentation of this file.
1 /*
2  * range.h
3  *
4  * Created on: Dec 1, 2019
5  * Author: Nikhil
6  */
7 
8 #ifndef INCLUDE_MDSTRESSLAB___RANGE_H_
9 #define INCLUDE_MDSTRESSLAB___RANGE_H_
10 
11 template <class T> class range {
12 private:
13  class iter {
14  private:
15  T at;
16  public:
17  iter(T at) : at(at) {}
18  bool operator!=(iter const& other) const { return at != other.at; }
19  T const& operator*() const { return at; }
20  iter& operator++() { ++at; return *this; }
21  };
22 
23  T begin_val;
24  T end_val;
25 public:
26  range(T begin_val, T end_val) :
27  begin_val(begin_val), end_val(end_val) { }
28  iter begin() { return iter(begin_val); }
29  iter end() { return iter(end_val); }
30 };
31 
32 
33 
34 
35 #endif /* INCLUDE_MDSTRESSLAB___RANGE_H_ */
iter begin()
Definition: range.h:28
iter end()
Definition: range.h:29
Definition: range.h:11
range(T begin_val, T end_val)
Definition: range.h:26