On Tue, 05 Jun 2012 22:38:22 +0200, Artur Skawina <[email protected]> wrote:

On 06/05/12 22:23, simendsjo wrote:
On Tue, 05 Jun 2012 20:46:51 +0200, Timon Gehr <[email protected]> wrote:


It should be dropped. A pointer to range is a perfectly fine range.


Sure..? I couldn't get it to work either:
struct R {
    string test = "aoeu";
    @property front() { return test[0]; }
    @property bool empty() { return !test.length; }
    void popFront(){test = test[0..$];}
}

void main() {
    R r;
    R* p = &r;
    foreach(ch; p) // invalid foreach aggregate p
        writeln(ch);
}

It /is/ a valid range, but it's /not/ currently accepted
by foreach.

(...)

which works, but only obfuscates the code and can be less efficient.

artur

Well, then it's not a *perfectly fine* range, is it then :)

Reply via email to