Page 496 of Programming in D

Going in circles.  Please correct so it compiles and works.
An explanation would be helpful also.

Error Message
```
c:\dev\D\71 - 80\c73_2d_School_Student_Teacher\source\app.d(23): Error: cannot implicitly convert expression `this.students[cast(ulong)i]` of type `const(Student)` to `app.Student`
            Student student = students[i];
                                      ^
```

source/app.d
```
import std.stdio;

void main() {
        auto school = new School;

        foreach (Student student; school) {

        }

        foreach (Teacher teacher; school) {

        }
}

class School {
        Student[] students;
        Teacher[] teachers;

        int opApply(int delegate(ref Student) dg) const {
                int result = 0;

                for (int i = 0; i < students.length; ++i) {
                        Student student = students[i];
                        result = dg(student);
                        if (result) break;
                }

                return result;
        }

        int opApply(int delegate(ref Teacher) dg) const {
                int result = 0;

                return result;
        }
}

class Student {
        string name;
}

class Teacher {
        string name;
}
```

Reply via email to