Разница во встраивании функций компилятором или компоновщиком?

Мне интересно, есть ли разница между встраиваемыми функциями на уровне компоновщика или на уровне компилятора с точки зрения скорости выполнения?

например, если я иметь все мои функции в файлах .cpp и полагаться на компоновщик для встраивания, будет ли это встраивание потенциально менее эффективным, чем, скажем, определение некоторых функций в заголовках для выбранной встраивания на уровне компилятора или сборок Unity без какой-либо связи и все встраивание, выполняемое компилятором?

Если компоновщик столь же эффективен, зачем ему тогда все еще беспокоитесь о встраивании функций явно на уровне компилятора? Это просто для удобства, скажем, есть только однострочный конструктор, поэтому нельзя беспокоиться о файле .cpp?

Я полагаю, это может зависеть от компилятора, и в этом случае меня больше всего заинтересует Visual C ++ (Windows) и gcc (Linux).

Спасибо

15
задан Cookie 10 May 2011 в 10:31
поделиться