/Ob (expansão de função embutida)
Controla a expansão embutida de funções. Por padrão, durante a otimização, a expansão ocorre a critério do compilador em todas as funções, geralmente conhecida como auto-inlining.
Sintaxe
/Ob{0|1|2|3}
/Ob{0|1|2}
Argumentos
0
O valor padrão em /Od. Desabilita expansões embutidas.
1
Permite a expansão somente de funções marcadas com inline, __inline ou __forceinline ou em uma função de membro do C++ definida em uma declaração de classe.
2
O valor padrão em /O1 e /O2. Permite que o compilador expanda qualquer função não explicitamente marcada para não embutir.
3
Essa opção especifica um embutimento mais agressivo do que /Ob2, mas tem as mesmas restrições. A opção /Ob3 está disponível a partir do Visual Studio 2019.
Comentários
O compilador trata as opções de expansão embutida e as palavras-chave como sugestões. Não há garantia de que as funções serão expandidas embutidas. Você pode desabilitar expansões embutidas, mas não pode forçar o compilador a embutir uma função específica, mesmo ao usar a palavra-chave __forceinline
.
Para excluir funções da consideração como candidatas à expansão embutida, você pode usar __declspec(noinline) ou uma região marcada por diretivas #pragma auto_inline(off) e #pragma auto_inline(on). Para obter informações sobre outra maneira de fornecer dicas de embutir para o compilador, confira a diretiva #pragma intrinsic.
Observação
As informações que são coletadas das execuções de teste de criação de perfil substituem as otimizações que, de outra forma, estariam em vigor porque você especificou /Ob, /Os ou /Ot. Para obter mais informações, confira Otimizações guiadas por perfil.
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades da Configuração>C/C++>Otimização.
Modifique a propriedade Expansão de Função Embutida.
A opção /Ob3 não está disponível na propriedade Expansão de Função Embutida. Para definir /Ob3:
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
Insira /Ob3 em Opções Adicionais.
Para definir essa opção do compilador via programação
- Consulte InlineFunctionExpansion.
Confira também
Opções /O (otimizar código)
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC