Имеется много встроенных функций с одинаковыми сигнатурами.Все функции малы и критичны по производительности.
int inline f1(int);
int inline f2(int);
...
int inline f5(int);
Мне нужно написать функции высокого уровня для автоматизации определенных задач - по одной функции высокого уровня на каждую встроенную функцию.n-я функция высокого уровня использует только n-ю функцию низкого уровня, в противном случае все функции высокого уровня идентичны.
int F_n(int x) {
int y;
// use n-th low level function to compute y from x
// for example
y = x*f_n(x);
return y;
}
Я мог бы использовать указатели функций для обратного вызова, но я думаю, что это предотвратит наклон ипроизводительность пострадает.Или я мог бы просто скопировать и вставить и вручную исправить имена функций.
Есть ли способ сделать это с помощью макросов?Макрос, который может генерировать функции высокого уровня автоматически?
#define GEN_FUNC( HIGH_LEVEL_FUNC, LOW_LEVEL_FUNC ) \
??????? \
??????? \
GEN_FUNC(F1, f1); // generate F1
GEN_FUNC(F2, f2); // generate F2
.........
GEN_FUNC(F_N, f_N); // generate F_N
Возможно ли это?
Спасибо.
PS Я мог бы использовать функциональные объекты, но он должен работать в Cтоже.