Ich glaube, er will den Overhead und Footprint klein halten.
Genau das ist mein Ansinnen.
Allerdings scheint mir dann der Ansatz unglücklich, denn das Suchen in einem unsortierten Array ist ziemlich langsam: Je größer die Liste, desto drastischer die Performanceeinbußen.
Da die Elemente wenige sind (in der Regel < 10), ist das kein Thema. In dieser Größenordnung wären Suchalgorithmen für sortierte Listen insgesamt sogar langsamer (incl. Verwaltungsaufwand wie z.B. sortiertes Einfügen gerechnet).
Ich habe gerade einen ersten Test gemacht, der die ganze Sache mit dem zentralen überladen einer IsEqual-Funktion hinfällig macht: Die Auswahl der korrekten überladenen Version erfolgt bevor die generischen Typen bekannt sind und somit gibt es keine überladene Version, die man mit diesen Argumenten aufrufen kann... Also bleibt mir nur, immer und überall diese ganze Funktionalität zu überladen statt eine generische Funktion zu nutzen. Die einzige Alternative scheinen die
RTTI zu sein.
Also werde ich doch
RTTI einbauen und diese mit ein paar meistverwendeten Typen überladen. Das steht bei jeder Methode einzeln an. Bei zeitkritischen Routinen muss ich also dran denken zu überprüfen, dass eine entsprechende überladene Version existiert.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."