Я чувствую, что каждый раз, когда я читаю программу на C или С++, половина или несколько из них - это просто макросы. Я понимаю, что макросы могут быть классными, но их сложно отследить, отладить и т.д. Не говоря уже о том, что большинство языков программирования даже не определяют что-то вроде макросов (хотя Perl6 будет иметь что-то подобное).
Я лично всегда нашел способ написать свой код без использования макросов, будь то с шаблонами, множественным наследованием и т.д. Я даже чувствовал, что я не хороший программист, потому что все профи используют макросы, и я стараюсь избегать их как можно больше.
Вопрос в том, есть ли проблемы, которые не могут быть решены без макросов? Являются ли макросы в конечном итоге хорошей/плохой практикой? Когда следует рассмотреть использование макроса?