Skip to content

Latest commit

 

History

History
37 lines (24 loc) · 2.06 KB

inline-depth.md

File metadata and controls

37 lines (24 loc) · 2.06 KB
description title ms.date f1_keywords helpviewer_keywords no-loc
Learn more about the inline_depth pragma directive in Microsoft C/C++
inline_depth pragma
01/22/2021
inline_depth_CPP
vc-pragma.inline_depth
pragma, inline_depth
inline_depth pragma
pragma

inline_depth pragma

Specifies the inline heuristic search depth. Functions at a depth in the call graph greater than the specified value aren't inlined.

Syntax

#pragma inline_depth( [ n ] )

Remarks

This pragma controls the inlining of functions marked inline and __inline, or inlined automatically under the /Ob compiler option. For more information, see /Ob (Inline function expansion).

n can be a value between 0 and 255, where 255 means unlimited depth in the call graph. A value of 0 inhibits inline expansion. When n isn't specified, the default value 254 is used.

The inline_depth pragma controls the number of times a series of function calls can be expanded. For example, assume the inline depth is 4. If A calls B, and B then calls C, all three calls are expanded inline. However, if the closest inline depth expansion is 2, only A and B are expanded, and C remains as a function call.

To use this pragma, you must set the /Ob compiler option to 1 or higher. The depth set using this pragma takes effect at the first function call after the pragma.

The inline depth can be decreased during expansion, but not increased. If the inline depth is 6, and during expansion the preprocessor encounters an inline_depth pragma with a value of 8, the depth remains 6.

The inline_depth pragma has no effect on functions marked with __forceinline.

Note

Recursive functions can be substituted inline to a maximum depth of 16 calls.

See also

Pragma directives and the __pragma and _Pragma keywords
inline_recursion