Share via

/Ob (Inline Function Expansion)

Controls inline expansion of functions.



  • 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.


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

  1. Open the project's Property Pages dialog box. For details, see How to: Open Project Property Pages.

  2. Click the C/C++ folder.

  3. Click the Optimization property page.

  4. Modify the Inline Function Expansion property.

To set this compiler option programmatically

See Also


/O Options (Optimize Code)

Compiler Options

Setting Compiler Options