Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4) C4714

Funkcja "function", oznaczony jako __forceinline nie inlined

Dana funkcja został wybrany do ekspansji wbudowany, ale kompilator nie wykonał inline.

Chociaż __forceinline jest silniejszy wskazanie w kompilatorze niż __inline, inline jest nadal wykonywane według uznania kompilatora, ale nie heurystyki są używane do określania korzyści z inline tej funkcji.

W niektórych przypadkach kompilator będzie niewyrównane określonej funkcji ze względów mechaniczne.Na przykład kompilator będzie niewyrównane:

  • Funkcja, jeśli mogłoby to prowadzić do mieszania zarówno strukturalnej obsługi wyjątków i EH w języku C++.

  • Niektóre funkcje z kopią zbudowane obiekty przekazywane przez wartość przy włączonej - GX/EHs/EHa.

  • Funkcje zwracające obiekt unwindable przez wartość przy włączonej - GX/EHs/EHa.

  • Funkcje za pomocą wbudowanego zestawu podczas kompilowania bez - Og/Ox/O1/O2.

  • Funkcje z listy zmiennych argumentów.

  • Funkcja z Spróbuj instrukcji (Obsługa wyjątków dla języka C++).

Poniższy przykład spowoduje wygenerowanie błędu C4714:

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


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

int main()
{
}