Я прочитал некоторые ответы и вижу, что некоторые вещи отсутствуют.
Правило, которое я использую, не должно использовать inline, если я не хочу, чтобы оно было встроенным. Выглядит глупо, теперь объяснение.
Компиляторы достаточно умны, а короткие функции всегда делают встроенными. И никогда не заставляет long работать как inline, если только программист не сказал, что это нужно.
Я знаю что inline это подсказка или запрос к компилятору
На самом деле inlineэто заказ для компилятора, у него нет выбора, и после inlineключевого слова весь код встроен. Таким образом, вы никогда не сможете использовать inlineключевое слово, и компилятор разработает самый короткий код.
Так когда же использовать inline?
Использовать, если вы хотите иметь встроенный код. Я знаю только один пример, потому что я использую его только в одной ситуации. Это аутентификация пользователя.
Например, у меня есть эта функция:
inline bool ValidUser(const std::string& username, const std::string& password)
{
//here it is quite long function
}
Независимо от того, насколько велика эта функция, я хочу, чтобы она была встроенной, потому что это затрудняет взлом моего программного обеспечения.
inlineдля новичка в C ++ тоCFLAGSже, что для новичка в Gentoo: нет, компиляция с ним-O3 -funroll-loops -finline-functionsне заставит ваш старый Pentium летать;)