Здравствуйте, C.A.B, Вы писали:
CAB>М.б., последний раз я интересовался этим где-то пару лет назад. Тогда макросами назвали обычные функции, которые компилятор мог вызывать после парсинга, и которые могли менять AST. Т.е. максимум на что такие макросы способны это изменять семантику существующих конструкций языка
Два года назад макросов не было вовсе.
Макросы — это и есть "обычные функции которые можно вызывать во время компиляции и которые могут менять АСТ". Этого более чем достаточно для метапрограммирования.
Синтаксис макросы Скалы менять не могут, но и в С++ это сделать невозможно. Так что макросы скалы могут примерно то же что и шаблонное метапрограммирование плюсов, но более прямым путем.
CAB>(что кстати делать категорически не рекомендовалось ).
Кем, где и что не рекомендовалось. Можно ссылочку?
Единственно что я знаю, это то что автор языка (Одесски) несколько поменял свое отношение к макросам после того как пытался запихнуть в язык аналог LINQ-а без них. К синтаксическим макросам он еще не готов. Но хоть что-то.