#include <iostream>
using namespace std;

template <class T> 
class Interval
{
	T start;
	T current;
	T stop;
	T step;

public:
	Interval(T start, T stop, T step) : 
		start(start), 
		stop(stop), 
		step(step), 
		current(start) { }

	bool hasNext() const {
		return (current <= stop);
	}
	
	T next() {
		T tmp = current;
		if (hasNext()) {
			current += step;
		}
		return tmp;
	}
};

void main(void)
{
	Interval<int> interval(1, 100, 10);
	while (interval.hasNext())
	{
		cout << interval.next() << endl;
	}
}

