Partilhar via


Aviso do compilador (nível 4) C4714

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

Observações

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

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

Em alguns casos, o compilador não embutirá uma função específica por razões mecânicas. Por exemplo, o compilador não irá embutir:

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

  • Algumas funções com cópia de objetos construídos passadas pelo valor quando -GX/EHs/EHa está ativado.

  • Funções que retornam um objeto não enrolável por valor quando -GX/EHs/EHa está ativado.

  • Funciona com montagem em linha ao compilar sem -Og/Ox/O1/O2.

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

  • Uma função com uma instrução (manipulação de try exceções C++).

Example

O exemplo a seguir gera C4714:

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

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

int main()
{
}