Информация об изменениях

Сообщение Re: Чем современные шаблоны лучше макросов? :) от 09.01.2022 17:24

Изменено 09.01.2022 17:26 Pavel Dvorkin

Re: Чем современные шаблоны лучше макросов? :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вот будь вместо шаблонов приличный макропроцессор, в котором можно и параметры вызова разобрать, и циклические конструкции использовать, и за счет объединения с компилятором использовать в условиях типы, классы и их свойства — какие у шаблонов остались бы преимущества?


В свое время одна моя студентка написала вот такой примерно код


#define N 5; 
// ...
for(int i = 0; i < N *2; i++) { 
// 
}


Диагностика компилятора — illegal indirection. Правильная диагностика.

Я потратил не помню уж сколько времени, пытаясь понять, что все это значит, и откуда тут indirection, если никаких указателей и близко нет. Пока не догадался посмотреть результат препроцессинга. Посмотреть сам макрос мне в голову не пришло я и не подумал, что N — это макрос.
Re: Чем современные шаблоны лучше макросов? :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вот будь вместо шаблонов приличный макропроцессор, в котором можно и параметры вызова разобрать, и циклические конструкции использовать, и за счет объединения с компилятором использовать в условиях типы, классы и их свойства — какие у шаблонов остались бы преимущества?


В свое время одна моя студентка написала вот такой примерно код


#define N 5; 
// ...
for(int i = 0; i < N *2; i++) { 
// 
}


Диагностика компилятора — illegal indirection. Правильная диагностика.

Я потратил не помню уж сколько времени, пытаясь понять, что все это значит, и откуда тут indirection, если никаких указателей и близко нет. Пока не догадался посмотреть результат препроцессинга. Посмотреть сам макрос мне в голову не пришло, я и не подумал, что N — это макрос.