История изменений
Исправление
AIv,
(текущая версия)
:
Терминологические споры самые бессмысленные. С т.з. конечного пользователя явная разница между макросами (не крестовыми «а вообще») и шаблонами не прослеживается. Да, детали реализации различаются. Да, в крестовых шаблонах в отличии от макросов (в большинстве других ЯП) есть контроль типов и даже механизмы позволяющие переключаться между различными возможными ветками «генерации кода» (тот же SFINAE), и выбирать корректную ветку.
Поверьте, в том же питоне макросов нету но я могу их туда засунуть если возникнет острая необходимость, и даже аналог SFINAE и контроль типов прикрутить. Да, это будет ближе к этому жуткому названию «гетерогенный полиморфный тип(гомогенные - дженерики)», но в Лиспе что то мне подсказывает что макросы это тоже не просто макросы?;-)
ЗЫ и чем же генерация кода так прЫнЦыпиально отличается от инстацирования?
Исходная версия
AIv,
:
Терминологические споры самые бессмысленные. С т.з. конечного пользователя явная разница между макросами (не крестовыми «а вообще») и шаблонами не прослеживается. Да, детали реализации различаются. Да, в крестовых шаблонах в отличии от макросов (в большинстве других ЯП) есть контроль типов и даже механизмы позволяющие переключаться между различными возможными ветками «генерации кода» (тот же SFINAE), и выбирать корректную ветку.
Поверьте, в том же питоне макросов нету но я могу их туда засунуть если возникнет острая необходимость, и даже аналог SFINAE и контроль типов прикрутить. Да, это будет ближе к этому жуткому названию «гетерогенный полиморфный тип(гомогенные - дженерики)», но в Лиспе что то мне подсказывает что макросы это тоже не просто макросы?;-)