Avviso del compilatore (livello 4) C4714
funzione 'function' contrassegnata come __forceinline non inlined
La funzione specificata è stata selezionata per l'espansione inline, ma il compilatore non ha eseguito l'inlining.
Sebbene __forceinline
sia un'indicazione più forte del compilatore rispetto __inline
a , l'inlining viene comunque eseguito a discrezione del compilatore, ma non viene usata alcuna euristica per determinare i vantaggi derivanti dall'inlining di questa funzione.
In alcuni casi, il compilatore non inlinerà una determinata funzione per motivi meccanici. Ad esempio, il compilatore non sarà inline:
Una funzione se comporta la combinazione di SEH e C++ EH.
Alcune funzioni con oggetti costruiti di copia passati per valore quando -GX/EHs/EHa è attivo.
Funzioni che restituiscono un oggetto rimovibile in base al valore quando -GX/EHs/EHa è attivo.
Funzioni con assembly inline durante la compilazione senza -Og/Ox/O1/O2.
Funzioni con un elenco di argomenti variabile.
Funzione con un'istruzione
try
(gestione delle eccezioni C++).
L'esempio seguente genera l'errore C4714:
// C4714.cpp
// compile with: /Ob1 /GX /W4
__forceinline void func1()
{
try
{
}
catch (...)
{
}
}
void func2()
{
func1(); // C4714
}
int main()
{
}