Пол Грэм пишет :
Например, типы кажутся неисчерпаемым источником исследовательских работ, несмотря на то, что статическая типизация, по-видимому, исключает истинные макросы - безкоторый, по моему мнению, не стоит использовать ни один язык.
Что за макросы?Я не проводил с ними много времени, но из устаревшего C / C ++, с которым я работал, они, по-видимому, в основном использовались как хак до появления шаблонов / шаблонов.
Трудно представитьчто
DECLARELIST(StrList, string);
StrList slist;
почему-то предпочтительнее, чем
List<String> slist;
Я что-то упускаю?
Тогда используется псевдо-функция, например MAKEPOINTS :
POINTS MAKEPOINTS(
DWORD dwValue
);
Почему бы вместо этого не определить его как функцию?Является ли это некоторой оптимизацией, когда вы избегаете дублирования кода без дополнительных накладных расходов другого фрейма стека?
Кроме того, существуют сложные элементы управления потоком данных, связанные с GOTO, которые кажутся сомнительными.
Что хорошего в макросах?Они менее безопасны по типу (в C и C ++) (верно?).Почему Пол Грэм не будет программировать без них?