автоматически встроенные функции через единицы перевода и gcc 4.6
Если я не объявил функцию f как встроенную. Просто так:
хиджры:
X f(Y y);
a.cpp:
X f(Y y)
{
...
}
Затем в другом модуле перевода:
B.cpp:
#include "A.h"
Z g(W w)
{
...
... f(...) ...
...
}
Затем я компилирую два блока перевода A.o и B.o с помощью gcc 4.6, а затем связываю их также через gcc. (Возможно с -O3 на оба шага)
Будет ли gcc рассмотреть возможность включения функции для повышения производительности во время соединения? Или уже слишком поздно?
В обзоре кода кто-то предложил, чтобы я не объявлял свои функции как встроенные, так как компилятор знает лучше, чем когда я включаю. Я всегда был под впечатлением, если только функция не определена в заголовке, тогда как компилятор не имеет возможности встроить ее.
(Если ответ отличается для режима C, режима C ++ или режима gnu ++ 0x, укажите это также)