関数を動的に作成するマクロ (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);
よろしく、