On Sunday, 11 January 2015 at 23:50:18 UTC, Ali Çehreli wrote:
On 01/11/2015 12:25 PM, Zaher Dirkey wrote:

> reproduce example here
> http://dpaste.dzfl.pl/13fb453d0b1e

That link doesn't work for me. (?)

Does opApply return the delegate's return value ('b' below)?

import std.stdio;

struct S
{
    int opApply(int delegate(int) dg)
    {
        foreach (i; 0 .. 10) {
            int b = dg(i);
            if (b) {
                writefln("Exiting opApply with %s", b);
                return b;
            }
        }

        return 0;
    }
}

int foo()
{
    auto s = S();
    foreach (i; s) {
        writeln(i);
        return 42;
    }

    return 0;
}

void main()
{
    assert(foo() == 42);
}

Ali

It in breaking the loop in opApply

   if (result==0) {
must be
  if (result) {

Thanks to Ali, and Zor at #D (freenode)

Reply via email to