Creo que cada vez que leo un programa en C o C++, esa mitad o más son simplemente macros. Entiendo que las macros pueden ser geniales, pero son difíciles de rastrear, depurar, etc. Sin mencionar que la mayoría de los lenguajes de programación ni siquiera definen algo así como macros (aunque Perl6 tendrá algo así).Sobre la dependencia de las macros
Personalmente siempre he encontrado la manera de escribir mi código sin usar macros, ya sea con plantillas, herencia múltiple, etc. Incluso he sentido que no soy un buen programador porque todos los profesionales usan macros y trato de evitarlos tanto como pueda.
La pregunta es, ¿hay problemas que no se pueden resolver sin macros? ¿Las macros son finalmente una buena/mala práctica? ¿Cuándo debería considerar usar una macro?
Bueno, no puedes usar plantillas en C, esa es una de las razones. – detly
¿Qué código ha estado leyendo si considera que "todos los profesionales usan macros"? Todo el código de C++ que conozco trata de evitarlo. En C, es un poco diferente porque no tienes muchas alternativas. Por cierto, ¿por qué está etiquetado C en absoluto? Su pregunta * suena * bastante específica para C++, mencionando plantillas y herencia. C y C++ son idiomas diferentes, ya sabes. – jalf
Exactamente lo que dijo @jalf: pueden tener algunas similitudes, pero cuando se trata de la generación de códigos, son planetas completamente diferentes. Por ejemplo, la [generación de X-macros/expresiones de tabla] (http://stackoverflow.com/questions/2927245/looking-for-a-good-explanation-of-the-table-generation-macro-idiom) – detly