Искам да генерирам масив от указатели на функции с помощта на променлив макрос. Ето един пример.
Преди предварителна обработка:
#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];
}
Възможно ли е това?
По принцип трябва да имам нещо преди разширяването на масива, нещо след разширяването на масива и да добавя префикс към всеки разширен променлив макро аргумент.
void(test::*fnPtrs[])()
. Моля, моля използвайте псевдоним вместо това. - person dyp   schedule 04.01.2014