Compartir a través de


Advertencia del compilador (nivel 4) C4714

función 'function' marcada como __forceinline no está insertada

La función especificada se seleccionó para la expansión insertada, pero el compilador no realizó la inserción.

Aunque __forceinline es una indicación más clara para el compilador que __inline, la inserción se sigue realizando a discreción de este, pero no se usa heurística para determinar las ventajas de la inserción de esta función.

En algunos casos, el compilador no inserta una función determinada por motivos mecánicos. Por ejemplo, el compilador no inserta:

  • Una función si eso diera lugar a la combinación de SEH y C++ EH.

  • Algunas funciones con objetos construidos de copia pasados por valor cuando -GX/EHs/EHa está activado.

  • Funciones que devuelven un objeto desenredable por valor cuando -GX/EHs/EHa está activado.

  • Funciones con ensamblado insertado al compilar sin -Og/Ox/O1/O2.

  • Funciones con una lista de argumentos de variable.

  • Una función con una instrucción try (control de excepciones de C++).

El ejemplo siguiente genera C4714:

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

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

int main()
{
}