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