Я хочу сгенерировать массив указателей на функции, используя вариативный макрос. Вот пример.
Перед предварительной обработкой:
#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