You might find this interesting too...string yield(string what) { return `if(auto result = dg(`~what~`)) return result;`; }
int opApply(int delegate(ref uint) dg) {
for (int i = 0; i < array.length; i++)
mixin(yield("array[i]"));
return 0;
}
The little mixin does the boilerplate making opApply
a bit more succinct, without anything really fancy.
