Я пытаюсь создать макрос (C/C++) для динамического создания функции. В основном у меня есть функция, имя которой меняется в части "MyClassA". Также аргументы должны передаваться через определение макроса. Затем есть переменный вызов метода внутри функции, например, "methodForClassA", опять же с переменным набором аргументов.
void Java_somepackage_MyClassA_fixMethod(int arg1, int arg2) {
Toolbox.methodForClassA(arg1, arg2);
}
Существует более 40 функций с таким шаблоном. Конечно, я могу создать их вручную или с помощью скрипта. Но можно ли сделать это с помощью макроса? Например, что-то вроде этого (которое не работает):
# define MACRO_TEST(classname, methodname, args, argsMethod) void Java_somepackage_##classname_fixMethod(##args) {\
Toolbox.##methodname(##argsMethod);\
}
MACRO_TEST(MyClassA, methodForClassA, args1, args2)
После некоторых экспериментов и чтения документации я смог найти только способ создания "динамических" имен функций с шаблонами, где "(" следует за динамической частью:
#define FUNCTION(name, x) int func_##name() { return x;}
FUNCTION(test, 2);
С уважением,