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)

questionAnswers(6)

yourAnswerToTheQuestion