String Mixins

Der mixin-Ausdruck nimmt einen beliebigen String, kompiliert diesen und generiert dementsprechende Befehle. Dies ist ein reiner Kompilierzeit-Mechanismus, der nur mit Strings arbeitet, die während der Kompilierung zur Verfügung stehen.

mixin("int b = 5");
assert(b == 5); // wird einwandfrei kompiliert

mixin arbeitet auch mit Strings, die dynamisch erzeugt werden, sofern die benötigten Informationen nicht auf Laufzeit-Werten beruhen.

Die Kombination von mixin und CTFE erlauben beeindruckende Bibliotheken wie Pegged, die einen Grammatik-Parser aus einer als String definierten Grammatik im Quellcode erzeugt.

Weiterführende Quellen

rdmd playground.d