Verehrte Besucher!

Unser heutiges Austellungsstück aus der Galerie der Abscheulichkeiten in der wunderbaren Welt der Programmierung: einer der schlimmsten Missbräuche einer For-Schleife, die mir in den letzten Jahren untergekommen sind. Im Original natürlich auch unkommentiert.


for( n_factors = 0, factor = 1;
     factor*cascade->orig_window_size.width < img->cols - 10 &&
     factor*cascade->orig_window_size.height < img->rows - 10;
     n_factors++, factor *= scaleFactor )
    ;

Auf einen Blick: was bezweckt dieses Konstrukt?
(Wäre es sinnvoll geschrieben oder kommentiert, wäre ein Blick völlig ausreichend)
Na?

Es berechnet, wie oft man ein Fenster hochskalieren kann, bevor es ein Bild ausfüllt.

Diese Perle stammt aus OpenCV, einer (funktionell) sehr guten Bibliothek, die mir durchaus ans Herz gewachsen ist. Es ist damit nur so ein bisschen wie mit Wurst: besser, man weiß nicht, wie es gemacht wird.

Gefolgt wird obiges übrigens von diesen Zeilen:

for( ; n_factors-- > 0; factor *= scaleFactor ) 
{
	...
}

Dafür gehört jemand geschlagen.