iX 5/2021
S. 134
Praxis
Embedded-Entwicklung

C++-Metaprogrammierung mit Templates für eingebettete Systeme

Nachschlagewerk

Dirk Petrautzki

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 Rechen­leistung 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 sim­ples Ändern der Berechnung oder das Anpassen von Konstanten geschieht.

Kommentieren