Mixins de cadenas de caracteres

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.

En profundidad

rdmd playground.d