Ключевое слово inline
не имеет ничего общего с производительностью в этот день и возраст и не имеет никакого отношения к встраиванию функции!
Фактически это связано с Правилом Единого определения (или ODR)!
В ODR указывается, что программа на C++ должна иметь только одно определение каждой функции.
Это означает, что следующее приведет к ошибке:
file.cpp
void fun() {}
main.cpp
void fun() {}
Это ошибка, потому что есть два определения одной и той же функции в двух разных трансляционных единицах (.cpp
файлах), что является нарушением ODR.
Теперь ключевое слово inline
позволяет обойти это. Это позволяет вам определять одну и ту же функцию в нескольких поступательных единицах, если тело функции точно такое же! Это позволяет вам определить функцию в файле заголовка, которая затем может быть включена в несколько файлов .cpp
.
Это считая. То, что вы описали, будет не вызывает замедление производительности. Компилятор выполнит правильные функции в соответствующее время. Это заставит ваш код работать быстрее, чем вы могли бы сделать это самостоятельно.
Inline сегодня не о производительности – deviantfan
Напишите код, чтобы он работал. Если он медленный, используйте профилировщик, чтобы определить, что медленно, и исправить эту часть. Повторите по мере необходимости. Не просто решите, что вам нужно встроить все. – crashmstr
@deviantfan, так что вы думаете о производительности? –