funções automaticamente incorporadas nas unidades de tradução e no gcc 4.6
Se eu não declarar uma função f como inline. Da seguinte maneira:
A.h:
X f(Y y);
A.cpp:
X f(Y y)
{
...
}
Em uma unidade de tradução diferente:
B.cpp:
#include "A.h"
Z g(W w)
{
...
... f(...) ...
...
}
Então eu compilo as duas unidades de tradução A.o e B.o com o gcc 4.6 e as vinculo também através do gcc. (Talvez com -O3 nos dois passos)
@ gcc considerará incluir a função de desempenho no momento do link? Ou é tarde demais
Em uma revisão de código, alguém sugeriu que eu não declarasse minhas funções como in-line, pois o compilador sabe melhor do que eu quando in-line. Eu sempre tive a impressão, a menos que a função seja definida no cabeçalho, pois o compilador não tem a opção de incorporá-l
(Se a resposta for diferente para o modo C, modo C ++ ou gnu ++ 0x, por favor, aponte isso também)