Einzelnen Beitrag anzeigen

frankg

Registriert seit: 20. Mai 2003
Ort: Wetter
72 Beiträge
 
Delphi 7 Architect
 
#1

Template Meta-Programmierung (oder ähnliches) in Delphi

  Alt 22. Okt 2003, 13:14
Hallo Leute!

Heute habe ich mal eine Frage, ob es so etwas, wie Template Meta-Programmierung (oder irgendwas ähnliches auch unter Delphi) gibt. Sicherlich wird jetzt der eine oder andere sagen "Wozu denn Template Meta-Programmierung? Das ist doch totaler Quatsch und wird unter C++ nur in einigen wenigen, akademischen Beispielen genutzt!". Das was bisher auch meine Ansicht, bis ich ein Kapitel im Buch Game Programming Gems, w. CD-ROM (http://www.amazon.de/exec/obidos/ASI...006251-6105313) gelesen habe. Dort verwenden sie Template Meta-Programmierung, um das in der Spieleprogrammierung allseits beliebte Problem der Sin/Cos Funktionen in den Griff zu bekommen. Das Problem ist ja, dass man, wenn man ein Spiel programmiert ziemlich auf Geschwindigkeit angewiesen ist, daher sind langwierige Berechungen von Sin/Cos Funktionen nicht unbedingt empfehlenswert. Oft sieht man, dass sin/cos-Tabellen verwendet werden. Das Buch beschreitet aber einen anderen Ansatz: Hier wird per Template-Meta-Programmierung im Prinzip die Taylor-Reihe für die sin-Funktion als "Markro" abgelegt, d.h. Ausdrücke wie z.B. x := sin(0.5) werden zur Compilierzeit berechnet, so dass im fertigen Programm dann im Prinzip an Stelle von x := sin (0.5) nur noch die Wertzuweisung steht. Das hat den Nachteil, dass das Programm länger compiliert (klar, müssen ja jede Menge Sinüsse berechnet werden ), im Endeffekt läuft das Programm dann aber zur Ausführungszeit schneller, weil Berechnungen durch Wertzuweisungen ersetzt wurden.
So lange Rede kurzer Sinn - geht so etwas unter Delphi auch (also im Prinzip ein Markro, dass zur Compilierzeit abgearbeitet wird).

Viele Grüsse

Frank
  Mit Zitat antworten Zitat