with macro language functions define c++ c macros include

c++ - language - macros en c



Expand definir macro con macro include (2)

Como han señalado otros, no se puede producir una directiva a partir de una macro.

Sin embargo, puede producir el argumento a una directiva desde una macro:

#define INCF(F) INCF_(F) #define INCF_(F) #F #define BAR foo.h #include INCF(BAR) // same as #include "foo.h"

Pero no puede deshacerse de ese #include explícito, o insertarlo en el medio de una línea diferente, o algo por el estilo.

Estoy tratando de definir una macro. La idea es que cuando se expanda, incluya un encabezado. Por ejemplo:

#define function() / include <CustomHeader.h>

Muchas gracias.


Esto no se puede hacer.

La secuencia del token de preprocesamiento completamente macro reemplazado resultante no se procesa como una directiva de preproceso, incluso si se parece a uno, [...]

Esa cita en particular proviene de un borrador razonablemente reciente del estándar C ++, pero con cambios menores en la redacción, la misma idea básica ha existido casi para siempre.