Следует также отметить, что встроенное ключевое слово является только запросом. Компилятор может решить не вставлять его, аналогично, компилятор может сделать встроенную функцию, которую вы не определили как встроенную, если он считает, что компромисс между скоростью и размером того стоит.
Это решение обычно принимается на основе ряда вещей, таких как настройка между оптимизацией по скорости (избегает вызова функции) и оптимизацией по размеру (встраивание может вызвать раздувание кода, поэтому не подходит для больших многократно используемых функций ).
с помощью компилятора VC ++ вы можете переопределить это решение, используя __forceinline
ТАК в общем:
Используйте inline, если вы действительно хотите иметь функцию в заголовке, но в другом месте нет особого смысла, потому что если вы собираетесь что-то извлечь из этого, хороший компилятор все равно сделает ее встроенной для вас.