Los compiladores optimizan las llamadas a funciones triviales realizadas a través de punteros?
Di que tengo una función que toma un puntero de función:
int funct(double (*f)(double));
Y le paso una función que en realidad no hace nada:
double g(double a) { return 1.0;}
//...
funct(g);
¿El compilador optimizará las llamadas ag
? ¿O esto todavía tendrá gastos generales? Si tiene gastos generales, ¿cuánto? ¿Suficiente como para sobrecargar la función para recibir tanto punteros de función como valores constantes?