可変個引数マクロを使用して、関数ポインターの配列を生成したいと考えています。これが例です。
前処理前:
#define MY_MACRO(mClassName, ...) ???
struct test {
void a() { }
void b() { }
void c() { }
};
MY_MACRO(test, a, b, c);
前処理後:
struct test {
void a() { }
void b() { }
void c() { }
};
void(test::*)() getMemFnPtr(int mIdx) {
static void(test::*)() fnPtrs[]{
&test::a,
&test::b,
&test::c
};
return fnPtrs[mIdx];
}
これは可能ですか?
基本的に、配列展開の前に何か、配列展開の後に何かが必要であり、展開されたすべての可変長マクロ引数に接頭辞を追加する必要があります。