Menu

Рядкові Mixins

Вираз mixin приймає довільний рядок, компілює його і генерує відповідні інструкції. Це механізм часу компіляції, який може працювати виключно з рядками, доступних під час компіляції. Саме тому порівняння зі злим JavaScript eval було б вкрай несправедливим.

mixin("int b = 5");
assert(b == 5); // добре компілюється

mixin також працює з рядками, які будуються динамічно, допоки потрібна інформація не залежить від значень часу виконання.

mixin разом з ОФЧК (CTFE) з наступного розділу дозволяє писати вражаючі бібліотеки, такі як Pegged, які генерують програму граматичного аналізу на основі граматики, визначеної, як рядок у вихідному коді.

Поглиблення

rdmd playground.d