Ist das wirklich sinnvoll? Das geht mir ja persönlich schon sehr in Richtung virtuelle Methoden sind langsam und muss man vermeiden. Macht das wirklich so viel aus?
Die Gruppen will ich vor allem weil ich SIMD nutze und dann immer vier Elemente zusammen berechne.
Die Berechnung zu verschlanken, ohne Overhead durch die ifs selber, das ist zumindest die Absicht mit den templates.
Was du da tust ist loop unswitching mithilfe von templates.
Genau.
Würdest du den Inhalt der anderen Funktion direkt in den Code packen, könnte das der Compiler selbst.
Weiß nicht welche für die die "andere" Funktion ist und was du mit "direkt in den Code" meinst.
Es soll eine beliebige Memberfunktion mit Parametern aufgerufen werden, die erst zur Laufzeit bekannt sind.
Nein, es geht praktisch darum dass viele Elemente verarbeitet werden. Das passiert in vierer Gruppen mit SIMD.
Die vier Elemente die in die Gruppe kommen werden identisch verarbeitet.
In dem Test geht es um einen Nachweis, dass man die Branches mit Templates zur Compilezeit auflösen kann, bzw, dass der Compiler den Code tatsächlich so auflöst, und darum ob das irgendwelche Nachteile hat.
MFG