Advertencia del compilador (nivel 4) C4714

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

la función 'función' marcada como __forceinline no está entre línea

La función dada fue seleccionada para expansión en línea, pero el compilador no realizó la inclusión entre líneas.

Aunque __forceinline es una indicación de mayor prioridad al compilador que __inline, inclusión aún se realiza a discreción del compilador, pero no se utiliza heurística para determinar los beneficios de inclusión esta función.

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

  • Una función de si el resultado de la mezcla SEH y C++ EH.

  • Algunas funciones de copia construyen objetos pasados por valor cuando está GX/EHs/EHa activada.

  • Funciones que devuelven un objeto no se pueden desenredar por valor cuando está GX/EHs/EHa activada.

  • Funciones con código ensamblador en línea al compilar sin - Og/Ox/O1/O2.

  • Funciones con una lista de argumentos de variable.

  • Una función con un intente instrucción (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()  
{  
}  

Mostrar: