Никогда не следует использовать статическую встроенную функцию?

Есть два значения использованияinline ключевое слово (& # xA7; 7.1.3 / 4):

It hints the compiler that substitution of function body at the point of call is preferable over the usual function call mechanism. Even if the inline substitution is omitted, the other rules(especially w.r.t One Definition Rule) for inline are followed.

Обычно любой основной компилятор заменяет тело функции в точке вызова, если это необходимо, поэтому маркировка функцииinline просто для#1 не очень нужно.

Далее w.r.t#2Как я понимаю, когда вы объявляете функцию какstatic inline функция,

static Ключевое слово на функцию заставляетinline функция иметь внутреннюю связь (inline functions have external linkageКаждый экземпляр такой функции рассматривается как отдельная функция (address of each function is different) и каждый экземпляр этих функций имеет свои собственные копии статических локальных переменных & amp; строковые литералы (an inline function has only one copy of these)

Таким образом, такая функция действует как любая другаяstatic функция и ключевое словоinline больше не имеет значения, оно становится излишним.

Итак, практически маркировка функцииstatic а такжеinline оба не имеют никакого смысла. Либо это должно бытьstatic(not most preferred) или жеinline(most preferred),
Итак, используетstatic а такжеinline вместе на функцииpractically бесполезный?

Ответы на вопрос(5)

Ваш ответ на вопрос