Поделиться через


inline_depth

Задает глубину эвристического поиска для подстановки функций, то есть на глубине (в графе вызовов) больше n подстановка функций не выполняется.

#pragma inline_depth( [n] )

Заметки

Эта директива pragma управляет подстановкой функций, помеченных как inline и __inline, а также автоматически подставляемых при помощи параметра /Ob2.

Значение n может находиться в диапазоне от 0 до 255. Значение 255 означает, что глубина в диаграмме вызовов не ограничена, а 0 блокирует подстановку функций. Если атрибут n не задан, используется значение по умолчанию (254).

Директива #pragma inline_depth определяет, сколько раз будет развернута серия вызовов функций. Например, если глубина подстановки равна 4, и при этом функция A вызывает B, а затем B вызывает C, то все 3 вызова будут развернуты для подстановки. Однако если ближайшая глубина развертывания подставляемых функций равна двум, то развернуты будут только функции A и B, а C останется вызовом функции.

Для использования этой директивы pragma необходимо указать параметр компилятора /Ob со значением 1 или 2. Глубина, установленная при помощи этой директивы #pragma, начинает действовать с первого вызова функции, расположенной после директивы.

При выполнении расширения глубина подстановки может уменьшаться, но не увеличиваться. Если глубина подстановки равна 6, и при выполнении расширения препроцессор встречает директиву #pragma inline_depth со значением 8, то сохраняется глубина 6.

Директива #pragma inline_depth не учитывается для функций, помеченных атрибутом __forceinline.

Примечание

Подстановка для рекурсивных функций выполняется на глубину не более 16 вызовов.

См. также

Ссылки

Директивы Pragma и ключевое слово __Pragma

inline_recursion