С включенной оптимизацией всей программы влияет ли встраивание на то, где реализован метод?
С включенной оптимизацией всей программы (она же время соединения) влияет ли на метод inline, где реализуется метод?
Без включенной оптимизации всей программы методы, которые публично объявлены в заголовке, но реализованы в соответствующем cpp, очевидно, не могут быть встроены во время компиляции другого модуля преобразования (другого cpp, который включает в себя вышеуказанный заголовок). Поэтому, если вы хотите, чтобы метод был встроенным, он должен быть реализован в экспортирующем заголовке.
С оптимизацией всей программы, имеет ли какое-либо значение, встроенный метод, реализован ли метод в заголовке или нет? То есть возможно / вероятно, что компилятор упустит возможность встроить метод, реализованный в cpp, который он не упустил бы, если бы метод был реализован в заголовке?
Меня особенно интересует ответ для Apple Clang (-flto
флаг) и для Visual Studio (/GL
флаг).