Partilhar via


C4714 de aviso (nível 4) do compilador

função 'função' marcada como __forceinline não seja embutida

A função determinada foi selecionada para expansão de linha, mas o compilador não executou o inlining.

Embora __forceinline é uma indicação mais forte para o compilador que __inline, inlining ainda é realizada a critério do compilador, mas nenhuma heurística é usadas para determinar os benefícios da inlining essa função.

Em alguns casos, o compilador irá in-line não uma função específica por motivos mecânicos.Por exemplo, o compilador irá não in-line:

  • Uma função se resultaria na mistura SEH e o C++ EH.

  • Algumas funções com cópia construído objetos passados por valor quando - GX/EHs//EHa está ativado.

  • Funções retornando um objeto unwindable pelo valor quando - GX/EHs//EHa está ativado.

  • Funções com assembly embutido durante a compilação sem - Og/Ox/O1/O2.

  • Funções com uma lista de argumentos variável.

  • Uma função com um tente instrução (manipulação de exceção de C++).

O exemplo a seguir gera C4714:

// C4714.cpp
// compile with: /Ob1 /GX /W4
__forceinline void func1()
{
   try
   {
   }
   catch (...)
   {
   }
}


void func2()
{
   func1();   // C4714
}

int main()
{
}