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 вызовов.