Estoy intentando crear una macro (C/C++) para crear dinámicamente una función. Básicamente tengo una función cuyo nombre varía en la parte "MyClassA". También los argumentos deben pasar a través de la definición de macro. Luego hay una llamada a método variable dentro de la función, por ejemplo "methodForClassA", nuevamente con un conjunto variable de argumentos.Creación dinámica de nombres de funciones con macros
void Java_somepackage_MyClassA_fixMethod(int arg1, int arg2) {
Toolbox.methodForClassA(arg1, arg2);
}
Hay más de 40 funciones con este patrón. Por supuesto que puedo crearlos manualmente o con un script. Pero, ¿también es posible hacer esto con una macro? Por ejemplo algo como esto (que no funciona):
# define MACRO_TEST(classname, methodname, args, argsMethod) void Java_somepackage_##classname_fixMethod(##args) {\
Toolbox.##methodname(##argsMethod);\
}
MACRO_TEST(MyClassA, methodForClassA, args1, args2)
Después de algunos experimentos y lectura de documentos, sólo pude encontrar la manera de crear nombres de función "dinámicas" con patrones donde un "(" sigue la dinámica parte:.
#define FUNCTION(name, x) int func_##name() { return x;}
FUNCTION(test, 2);
Saludos,