Может быть причина, по которой компилятор не указывает на это, возможно, на что-то посмотреть. Кроме того, при более длинных функциях издержки вызова функций становятся меньше проблемой, поэтому их вставка может быть не такой важной (если это ваша единственная причина).
Разделение функции на 5 маленьких функций просто испортит ваш код, и, возможно, запутает компилятор и в конечном итоге ничего не вставит. Я бы не рекомендовал это.
В зависимости от вашего компилятора C ++, вы можете заставить его встроить функцию. Visual C ++ имеет атрибут __forceinline
, а также параметр для обработки встраивания и как часто его следует использовать в настройках проекта. Как отмечает Тони, эквивалент GCC равен __attribute__((always_inline))
.
Вы также можете использовать некоторые хитрости препроцессора для вставки самого кода, но я бы не рекомендовал этого.