On Thursday, 4 August 2022 at 13:08:21 UTC, pascal111 wrote:
```D
    import std.stdio;
    import std.string;

    struct Student {
       string name;
       int number;

       string toString() const {
          return format("%s(%s)", name, number);
       }
    }

    struct School {
       Student[] students;
    }
    struct StudentRange {
       Student[] students;

       this(School school) {
          this.students = school.students;
       }
       @property bool empty() const {
          return students.length == 0;
       }
       @property ref Student front() {
          return students[0];
       }
       void popFront() {
          students = students[1 .. $];
       }
    }

    void main() {
auto school = School([ Student("Raj", 1), Student("John", 2), Student("Ram", 3)]);
       auto range = StudentRange(school);
       writeln(range);

       writeln(school.students.length);

       writeln(range.front);

       range.popFront;

       writeln(range.empty);
       writeln(range);
    }
```

😀
  • Ranges pascal111 via Digitalmars-d-learn
    • Re: Ranges Salih Dincer via Digitalmars-d-learn
    • Re: Ranges frame via Digitalmars-d-learn

Reply via email to