/Ob (Inline Function Expansion)
Controls inline expansion of functions.
/Ob{0|1|2}
- 0
-
Disables inline expansion, which is on by default.
- 1
-
Expands only functions marked as inline, __inline, __forceinline or __inline or, in a C++ member function, defined within a class declaration.
- 2
-
Expands functions marked as inline or __inline and any other function that the compiler chooses (expansion occurs at the compiler's discretion, often referred to as auto-inlining).
/Ob2 is in effect when /O1, /O2 (Minimize Size, Maximize Speed) or /Ox (Full Optimization) is used.
This option requires that you enable optimizations using /O1, /O2, /Ox, or /Og.
The compiler treats the inline expansion options and keywords as suggestions. There is no guarantee that functions will be expanded inline. You cannot force the compiler to inline a particular function.
You can also use auto_inline to exclude functions from being considered as candidates for inline expansion. Also see intrinsic.
Note |
|---|
| Information that is gathered from profiling test runs will override optimizations that would otherwise be in effect if you specify /Ob, /Os, or /Ot. For more information, Profile-Guided Optimizations. |
To set this compiler option in the Visual Studio development environment
-
Open the project's Property Pages dialog box. For details, see How to: Open Project Property Pages.
-
Click the C/C++ folder.
-
Click the Optimization property page.
-
Modify the Inline Function Expansion property.
Note