goto

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Feb 5 19:37:35 PST 2009


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



More information about the Digitalmars-d mailing list