http://d.puremagic.com/issues/show_bug.cgi?id=5403
Summary: foreach requires front to be a function in a range Product: D Version: D2 Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: schvei...@yahoo.com --- Comment #0 from Steven Schveighoffer <schvei...@yahoo.com> 2011-01-03 07:25:54 PST --- This is a valid range: import std.range; struct S { int front; bool empty; void popFront() {empty = true;} } static assert(isInputRange!S); // compiles But this fails: void main() { S s; foreach(int i; s) { } } fails with the following error: Error: no property 'opApply' for type 'S' Error: opApply() function for S must return an int Change front to: @property int front() {return 0;} and it compiles. Clearly empty is not required to be a function, and there is no mention of any function requirements in the spec, it's just stated that they must be properties. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------