La expresión mixin
toma un cadena de caracteres arbitraria y la compila
para generar instrucciones en consecuencia. Es un mecanismo que se ejecuta
puramente en tiempo de compilación y sólo funciona con cadenas de caracteres
que estén disponibles durante esta fase. Comparar esta característica con
la función eval
de Javascript no sería muy justo.
mixin("int b = 5");
assert(b == 5); // compila bien
La expresión mixin
también funciona con cadenas de caracteres construidas
de forma dinámica, siempre y cuando la información disponible para crear
dicha cadena no dependa de valores en tiempo de ejecución.
Los mixins, junto con CTFE (se verá en la sección siguiente), permiten escribir librerías impresionantes como Pegged, que genera analizadores de gramáticas a partir de gramáticas definidas como cadenas de caracteres en el código fuente.