Здравствуйте, kov_serg, Вы писали:
A>>Я тут вычитал идею писать на связке PHP и C++. С каждым днём она кажется мне всё менее безумной.
A>>Впрочем, наверно, вместо PHP можно взять и что-то получше, да? PHP же не позволяет развернуть #pragma once в гарды? Как там реализовать конструкцию "добавить в конец файла"?
_>Еще вариант lua + c
Я не сталкивался с Lua, но он же вроде для ембеддинга, а не для препроцессинга?
Идея в том, чтобы писать макросы типа is_in_set на внешнем языке (типа PHP), пропускать через процессор (например, через pre build steps), он их будет разворачивать в нужное количество сравнений, а затем результат подавать на вход компилятору.
Только вот не уверен я, что код будет выразительнее, чем с дефайнами.
Кроме того, если мы захотим генерировать заголовочные прагма-гарды (#ifndef #define ... #endif) вместе с #pragma once или ИЗ #pragma once, вроде бы, похапе так не может, для этого надо уметь добавлять в конец, даже если там нет тега <? >, да ещё и по-умному, чтобы не было пересечений. Это не самая практичная задача, а просто пример того, что язык и его процессор должны уметь делать.