Я пытаюсь создать макрос (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);
С уважением,