Скажем, у меня есть функция, которая принимает указатель на функцию:
int funct(double (*f)(double));
И передаю ему функцию, которая на самом деле ничего не делает:
double g(double a) { return 1.0;}
//...
funct(g);
Будет ли компилятор оптимизировать вызовы на g
? Или это все еще будет иметь накладные расходы? Если у него есть накладные расходы, сколько? Достаточно ли перегрузить функцию для получения указателей на функции и постоянных значений?