У меня есть несколько функций, определенных следующим образом:
ParentClass* fun1();
ParentClass* fun2();
ParentClass* fun3(bool inp=false);
ChildClass* fun4();
ChildClass* fun5(int a=1, int b=3);
Я хотел бы привести их в какой-то массив:
void* (*arr[5])() = {
(void* (*)())fun1,
(void* (*)())fun2,
(void* (*)())fun3,
(void* (*)())fun4,
(void* (*)())fun5
}
Теперь я хотел бы использовать этот массив функций просто как
for(int i=0; i<5; i++)
someFunction(arr[i]());
Теперь я понимаю, что проблема void* (*arr[5])()
, но при условии, что я хочу использовать функции без предоставления аргумента, я хотел бы, чтобы все они были частью одного и того же массива.
Тем не менее, это очень C-образные способы сделать это. Есть ли лучший способ сделать это, используя Шаблоны в C++?