2010-11-02 2 views
4

В чем дело с несоблюдением макросов? или в чем дело с попыткой избежать макросов?Зачем копировать макросы как можно больше?

Я видел несколько сообщений, которые недавно говорили о замедлении использования макросов: DSL! = Макросы, переписывание кода с функциями вместо макросов, начало исследования для переключения с макросов на функции ...

но какая сделка? вы думаете, что макросы будут править миром, и вы этого не хотите?

Что не так с макросами? зачем снизить их использование? разве они не должны быть методом расширения языка?

+1

Как сказал Стив Йегге: «Макросы похожи на эти мощные полосы-пособия, когда то, что вы хотите, не должно быть ранены в первую очередь». – delnan

+1

Точка не бросает их, но не использует их. – Svante

ответ

12

Главный аргумент, который я вижу для предпочтения функции макросам, заключается в том, что они недоступны в качестве функций первого класса во время выполнения, что ограничивает вашу гибкость при использовании различных мощных методов функционального программирования.

Лично я думаю, что макросы по-прежнему является чрезвычайно полезным инструментом программирования предоставляя вам использовать их соответствующим образом - т.е. что позволяет делать сложные преобразований кода во время компиляции, которые могли бы нести высокие затраты времени выполнения или требуют много ненужного шаблонного кода.

+3

И это точно так: * используйте их соответственно *. Никто не говорит вам избегать макросов, но избегать макросов * как можно больше *. – kotarak

+2

+1 для «они недоступны в качестве функций первого класса», потому что я не знал этого, и это действительно повод, чтобы избежать их – Belun

0

падение макросов столько, сколько possable:

  • , не прибегая к дублированию кода,
  • повторяя рисунок,
  • писать непонятный код,
  • или mikera указует, делая значительное вычисление во время выполнения, которое могло быть выполнено во время компиляции. презентация
Смежные вопросы