¿Es posible definir una macro C/C++ "BUILD(a, i)
" que se expande a "x[0], x[1], x[2], ..., x[i]
"? Como enExpansión recursiva de macro a una secuencia
#define BUILD(x, 0) x[0]
#define BUILD(x, 1) x[0], x[1]
#define BUILD(x, 2) x[0], x[1], x[2]
...
Parece que BOOST_PP_ENUM_PARAMS podría hacer el trabajo. Supongo que podría #include boost, pero estoy interesado en saber cómo y por qué funciona, ¿alguien puede explicarlo?
quisiera llamar a una función f(int, ...)
que toma argumentos N int x[i]
, 0 < = i < N. Donde N es conocido por ser ceil(sizeof(A)/sizeof(B))
. Desafortunadamente, no puedo usar varargs o plantillas.
relacionada: http://stackoverflow.com/questions/824639/variadic-recursive-preprocessor-macros-is-it-possible/893684 –
¿Qué problema está realmente tratando de resolver? es decir. ¿Para qué se usará el resultado de esta macro? ¿Se podría cambiar ligeramente el uso para permitir una solución de plantilla (donde la recursión es posible)? –
Ver mi última edición. –