Hello Andrei,
I was coding a simple Euclidean distance function with limit:double euclideanDistance(Range)(Range a, Range b, double limit) { limit *= limit; double result = 0; for (; !a.empty; a.next, b.next) { enforce(!b.empty); auto t = a.head - b.head; result += t * t; if (result >= limit) goto thatsit; } enforce(b.empty); thatsit: return sqrt(result); } How would an elegant goto-less approach look like? It should not duplicate code, e.g. the call to sqrt. Andrei
I think this is a good reason for more scope(*) versions you could fake it with
for (; !a.empty; a.next || (enforce(b.empty), false), b.next)
