On 20/10/2018 12:32 PM, solidstate1991 wrote:
Since it's a bit difficult to make tree traversal through range
(especially if someone wants to make it @nogc), I thought I'll make it
through opApply override, however the delegate passed by it doesn't have
the @nogc attribute, which would automatically make it incapable to be
used in a @nogc context.
I also don't know if it would work with structs instead of classes,
since they're easier to handle in a @nogc situation.
class Foo
{
uint[2] array;
int opApply(scope int delegate(ref uint) @nogc dg) @nogc
{
int result = 0;
for (int i = 0; i < array.length; i++)
{
result = dg(array[i]);
if (result)
break;
}
return result;
}
}
void test()
{
Foo a = new Foo();
a.array[0] = 73;
a.array[1] = 82;
foreach (uint u; a)
{
printf("%d\n", u);
}
}