C++-Metaprogrammierung mit Templates für eingebettete Systeme
Nachschlagewerk
Lookup-Tabellen erlauben es, aufwendige Berechnungen durch einfaches Nachschlagen zu ersetzen. Mit C++-Templates lassen sie sich komfortabel und ohne Overhead für das resultierende Binary zur Compile-Zeit erzeugen.
Seit jeher setzen Programme statische Tabellen immer dann ein, wenn sie zur Laufzeit anhand eines Eingangswerts einen Ausgangswert nachschlagen sollen. Diese meist als LUT (Look-up Tables) bezeichneten Tabellen sind vielfältig einsetzbar. Sie erlauben es insbesondere, komplexe Berechnungen zur Programmlaufzeit durch eine – in der Regel wesentlich schnellere – Wertsuche zu ersetzen. Gerade bei der Programmierung von Mikrocontrollern mit begrenzter Rechenleistung spielt die Zeitersparnis eine wichtige Rolle.
Statt diese Tabellen beispielsweise mit einem Tabellenkalkulationsprogramm zu berechnen und anschließend händisch in den Programmcode zu übertragen, kann man in C++ die Metaprogrammierung unter Zuhilfenahme von Templates nutzen und diese Tabellen zur Compile-Zeit generieren lassen. Ein nachträgliches Verändern einer Tabelle gestaltet sich insofern äußerst einfach, als dies durch ein simples Ändern der Berechnung oder das Anpassen von Konstanten geschieht.