С включенной оптимизацией всей программы влияет ли встраивание на то, где реализован метод?

Когда включена оптимизация всей программы (a.k.a link-time), влияет ли на встраивание метод реализации?

Без включенной оптимизации всей программы методы, которые публично объявлены в заголовке, но реализованы в соответствующем cpp, очевидно, не могут быть встроены во время компиляции другого модуля преобразования (другого cpp, который включает в себя вышеуказанный заголовок). Поэтому, если вы хотите, чтобы метод был встроенным, он должен быть реализован в экспортирующем заголовке.

С оптимизацией всей программы, имеет ли какое-либо значение, встроенный метод, реализован ли метод в заголовке или нет? То есть возможно / вероятно, что компилятор упустит возможность встроить метод, реализованный в cpp, который он не упустил бы, если бы метод был реализован в заголовке?

Меня особенно интересует ответ для Apple Clang (-flto флаг) и для Visual Studio (/GL флаг).

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]