У меня есть функция шаблона, где параметр шаблона является целым числом. В моей программе мне нужно вызывать функцию с маленьким целым числом, которое определяется во время выполнения. От руки я могу сделать таблицу, например:
void (*f_table[3])(void) = {f<0>,f<1>,f<2>};
и вызовите мою функцию с помощью
f_table[i]();
Теперь вопрос в том, существует ли какой-нибудь автоматический способ построения этой таблицы в произвольном порядке. Лучшее, что я могу придумать, это использовать макрос
#define TEMPLATE_TAB(n) {n<0>,n<1>,n<2>}
, который по крайней мере избегает повторения имени функции снова и снова (мои настоящие функции имеют более длинные имена, чем "f"). Тем не менее, максимально допустимый порядок все еще жестко закодирован. В идеале размер таблицы должен определяться только одним параметром в коде. Можно ли решить эту проблему с помощью шаблонов?