/Ob (Expansión de funciones inline)
Controla la expansión en línea de las funciones. De manera predeterminada, cuando se produce la optimización, la expansión se da a discreción del compilador en todas las funciones, un proceso habitualmente denominado auto-inlining.
Sintaxis
/Ob{0|1|2|3}
/Ob{0|1|2}
Argumentos
0
Valor predeterminado en /Od. Deshabilita las expansiones en línea.
1
Solo permite la expansión de las funciones marcadas como inline, __inline o __forceinline, o en una función miembro de C++ definida en una declaración de clase.
2
El valor predeterminado en /O1 y en /O2. Permite que el compilador expanda cualquier función que no esté marcada explícitamente para ninguna inserción.
3
Esta opción especifica una inserción más agresiva que /Ob2, pero tiene las mismas restricciones. La opción /Ob3 está disponible a partir de Visual Studio 2019.
Comentarios
El compilador trata las opciones de expansión insertada y las palabras clave como sugerencias. No hay ninguna garantía de que las funciones se expandan de forma insertada. Puede deshabilitar las expansiones insertadas, pero no se puede forzar al compilador a que inserte una función determinada, incluso cuando se usa la palabra clave __forceinline
.
Para excluir funciones de la lista de candidatas para la expansión insertada, puede usar __declspec(noinline) o una región marcada por directivas #pragma auto_inline(off) y #pragma auto_inline(on). Para obtener información sobre otra manera de proporcionar sugerencias de inserción al compilador, consulte la directiva #pragma intrinsic.
Nota:
La información que se recopila a partir de series de pruebas de generación de perfiles invalida las optimizaciones que, en caso contrario, estarían activas al especificar /Ob, /Os u /Ot. Para más información, vea Optimizaciones guiadas por perfiles.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione en la página de propiedades Propiedades de configuración>C/C++>Optimización.
Modifique la propiedad Expansión de funciones insertadas.
La opción /Ob3 no está disponible en la propiedad Expansión de funciones insertadas. Para establecer /Ob3:
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.
Seleccione la página de propiedades Propiedades de configuración>C/C++>Línea de comandos.
Escriba /Ob3 en Opciones adicionales.
Para establecer esta opción del compilador mediante programación
Consulte también
/O (Opciones) (Optimizar código)
Opciones del compilador de MSVC
Sintaxis de la línea de comandos del compilador MSVC