Condividi tramite


Avviso del compilatore (livello 4) C4714

funzione 'funzione' contrassegnata come __forceinline non resa inline

La funzione specificata è stata selezionata per l'espansione inline, ma l'operazione non è stata eseguita.

Benché __forceinline sia un'indicazione più forte di __inline per il compilatore, l'operazione di inline viene comunque eseguita a discrezione del compilatore, ma non vengono utilizzati sistemi euristici per determinare i vantaggi derivanti dalla funzione inline.

In alcuni casi, una particolare funzione non viene resa inline per motivi meccanici.Di seguito sono riportati alcuni esempi di funzioni che non vengono rese inline:

  • Funzioni che risulterebbero in una mescolanza di SEH ed EH di C++.

  • Funzioni con oggetti creati tramite costruttore di copia passati per valore quando l'opzione -GX/EHs/EHa è attivata.

  • Funzioni che restituiscono un oggetto non svuotabile per valore quando l'opzione -GX/EHs/EHa è attivata.

  • Funzioni con codice assembly inline durante la compilazione senza -Og/Ox/O1/O2.

  • Funzioni con un elenco di argomenti variabile.

  • Funzioni con un'istruzione try (gestione delle eccezioni C++).

Nell'esempio seguente viene generato l'errore C4714:

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


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

int main()
{
}