Выражение mixin
принимает заданную строку, компилирует её
и генерирует соответствующие инструкции. Это механизм,
работающий исключительно во время компиляции, и, соответственно,
работает только со строками, доступными во время компиляции.
Сравнение со зловещим eval
из JavaScript здесь неуместно.
mixin("int b = 5");
assert(b == 5); // компилируется вполне
// обычно
mixin
так же работает со строками, собранными динамически,
естественно, если они не зависят от значений, доступных
только во время исполнения.
mixin
совместно с CTFE из следующего раздела
позволяют писать впечатляющие библиотеки, наподобие
Pegged,
генерирующей парсер грамматики, определённой в виде
строки в исходном коде.