Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, используй ML/1 Брауна.
Речь не о том, что прикрутить сбоку, а о том, что универсальный и мощный язык мог бы иметь макропроцессор и поприличнее. А еще лучше — встроенные языковые средства наподобие шаблонов, но не такие убогие.
Здравствуйте, Евгений Музыченко, Вы писали:
V>>Кому необходимое? ЕМ>Необходимое для реализации адекватного макропроцессора, способного вставить не только примитивную статическую конструкцию с подстановкой фактических параметров, но и заполнить таблицу набором значений, сгенерировать код, состав которого произвольно зависит от параметров, создать набор непротиворечиво связанных объектов и т.п.
Препроцессор не генерирует код, он генерирует текст. Или ты перепутал препроцессор с инструкцией прагма? Так она в каждом компиляторе своя.
V>>Вот boost.preprocessor доказывает, что так реализовано, что пришлось мудрить. ЕМ>Подобное убожество могли породить только те, кто никогда не видел нормального макропроцессора.
Как раз это и сделано на недоделанном макропроцессоре.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Препроцессор не генерирует код, он генерирует текст.
Выражение "программный код" давным-давно стало синонимом к "тексту программы". Даже здесь кнопка "Код" подразумевает вставку отнюдь не объектного и/или двоичного кода, а как раз текста.
V>Как раз это и сделано на недоделанном макропроцессоре.
Здравствуйте, Евгений Музыченко, Вы писали: ЕМ>Давно пора бы что-то сделать с убогим макросинтаксисом, чтобы прагмы и директивы условной трансляции можно было вставлять в макросы. MS почти двадцать лет назад выродила __pragma и __if_exists, но и они кривоватые, и комитет не чешется.
Здравствуйте, Евгений Музыченко, Вы писали:
V>>Препроцессор не генерирует код, он генерирует текст. ЕМ>Выражение "программный код" давным-давно стало синонимом к "тексту программы".
Для макропроцессора никогда им и не было.
ЕМ>Даже здесь кнопка "Код" подразумевает вставку отнюдь не объектного и/или двоичного кода, а как раз текста.
Так вставляй, кто мешает? Макропроцессор никогда и не брал на себя обязанности компилятора, иначе бы он перестал быть макропроцессором.
V>>Как раз это и сделано на недоделанном макропроцессоре. ЕМ>Что мешало сперва доделать макропроцессор?
Комитету этот вопрос в следующий раз задай.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]