forward reference hell!
sa
12 at abc.com
Sat Feb 14 17:19:54 PST 2009
Since there are more people here, I fwd the post here to get advice.
===============================================
http://d.puremagic.com/issues/show_bug.cgi?id=2666
$ cat vector.d #-----------------------------------------------------
module vector;
class Vector(E) {
E[] data;
}
$ cat student.d #-----------------------------------------------------
module student;
import vector;
import teacher;
// define Student
class Student {
void ask(Teacher teacher) {
}
}
// define Students
alias Vector!(Student) Students;
$ cat teacher.d #-----------------------------------------------------
module teacher;
import student;
class Teacher {
Students students;
}
===============================================
$ dmd -c student.d
teacher.d(6): Error: forward reference to 'Vector!(Student)'
teacher.d(6): Error: Students is used as a type
teacher.d(6): variable teacher.Teacher.students voids have no value
===============================================
sure I know if I do:
$ dmd -c vector.d teacher.d student.d
all the three files can be compiled without error.
But my question is: why can't file be individually compiled?
I think I have the most natural/logical organization of files; if you move the
'Students' alias around, it could get compiled, but what's wrong with my
current organization?
More information about the Digitalmars-d
mailing list