Каковы эффекты встроенного?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Каковы эффекты встроенного?

Сообщение Anonymous »

Я обсуждал с Йоханнесом Шаубом ключевое слово inline.
Там был такой код:

Код: Выделить всё

namespace ... {
static void someFunction() {
MYCLASS::GetInstance()->someFunction();
}
};
Он заявил, что:

Размещение этого как встроенной функции может
сэкономить размер кода в исполняемом файле.

Но согласно моим выводам здесь и здесь это не понадобится, поскольку:
  • [Встроенное] происходит только в том случае, если анализ затрат и выгод, проведенный компилятором, показывает его прибыльность.
  • Основные компиляторы C++, такие как Microsoft Visual C++ и GCC поддерживает опцию, которая позволяет компиляторам автоматически встраивать любую подходящую функцию, даже те, которые не помечены как встроенные.
Йоханнес утверждает, что существуют другие преимущества явного указания этого, которые я не понимаю. Например, он заявил, что

[..] «встроенный» позволяет определять функцию в программе несколько раз.

.. который мне трудно понять (и найти ссылки на него).
Итак,
  • Является ли встроенный просто рекомендацией для компилятора?
  • Следует ли это указывать явно, если у вас небольшой функция (полагаю, 1-4 инструкции?)
  • Какие еще эффекты возникают при написании строк?
  • нужно ли указывать inline, чтобы уменьшить размер исполняемого файла, даже если компилятор должен сам найти такие функции?
Есть ли что-то еще, что мне не хватает ?

Подробнее здесь: https://stackoverflow.com/questions/364 ... -of-inline
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»