Programmieren bedeutet Programme schreiben, Metaprogrammieren bedeutet Programme schreiben zu lassen. Aber nicht von einer anderen Person, sondern von der Sprache, die man selbst zum programmieren benutzt.
In diesem Vortrag will ich genauer erklären, was man unter Metaprogrammierung versteht, warum man sowas tut, und vor allem: wie man es tut. Im besonderen werde ich dabei auf C++ eingehen, weil C++ eines der am besten erforschten Templatesysteme hat. Templatesysteme in anderen Sprachen funktionieren meist ähnlich.
Nicht betrachtet werden hier Textersetzungssysteme wie der C-Präprozessor, auch wenn diese genau so mächtig sind wie die Templatesysteme, um die es hier eigentlich geht.
Als Beispiel für die Mächtigkeit des C++-Templatesystems betrachten wir einen Brainfuckinterpreter, der nur aus Templates besteht.