Здравствуйте, Alekzander, Вы писали:
A>Идея в том, чтобы писать макросы типа is_in_set на внешнем языке (типа PHP), пропускать через процессор (например, через pre build steps), он их будет разворачивать в нужное количество сравнений, а затем результат подавать на вход компилятору.
Ну сделаете Вы так, а дальше-то что? Задача ж сугубо частная, не так уж много задач можно решить таким образом, чтоб вся эта возня окупилась. Если уж делать механизм, то более-менее универсальный.
A>Это не самая практичная задача, а просто пример того, что язык и его процессор должны уметь делать.
В том-то и дело, что подобные решения всегда будут лишь частными. Чтоб можно было делать удобные и эффективные решения для разных задач, язык должен, с одной стороны, позволять извлекать из компилятора информацию о компилируемой программе, а с другой стороны — применять эту информацию для порождения других элементов программы.