xxxxxxxxxx
import std;
struct MyIntRange
{
int[] _elements;
size_t _offset;
bool empty() { return !_elements || _offset >= _elements.length; }
int front() { return _elements[_offset]; }
void popFront() { _offset++; }
}
void main()
{
auto range = MyIntRange([1, 2, 3, 4, 5], 0);
foreach (e; range)
{
if (e == 3) break;
writeln(e);
}
foreach (e; range)
{
writeln(e);
}
}