Я прочитал некоторые ответы и вижу, что некоторые вещи отсутствуют.
Правило, которое я использую, не должно использовать 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 летать;)