Aracılığıyla paylaş


Derleyici Uyarısı (düzey 4) C4714

__forceinline olarak işaretlenen 'function' işlevi, çizili değil

Verilen işlev satır içi genişletme için seçildi, ancak derleyici satır içi genişletmeyi gerçekleştirmedi.

Derleyici için değerinden __inlinedaha güçlü bir gösterge olsa __forceinline da, yine de derleyicinin takdirine bağlı olarak, inlining gerçekleştirilir, ancak bu işlevin temelini oluşturmanın avantajlarını belirlemek için hiçbir buluşsal yöntem kullanılmaz.

Bazı durumlarda, derleyici mekanik nedenlerle belirli bir işlevi satır içi olarak satır içi olarak kullanmaz. Örneğin, derleyici satır içi olmaz:

  • Hem SEH hem de C++ EH'nin karıştırılmasıyla sonuçlanırsa bir işlev.

  • -GX/EHs/EHa açıkken değere göre geçirilen kopya yapılı nesnelere sahip bazı işlevler.

  • -GX/EHs/EHa açıkken değere göre geri döndürülemez bir nesne döndüren işlevler.

  • -Og/Ox/O1/O2 olmadan derleme yaparken satır içi derlemeye sahip işlevler.

  • Değişken bağımsız değişken listesi olan işlevler.

  • (C++ özel durum işleme) deyimine sahip bir try işlev.

Aşağıdaki örnek C4714 oluşturur:

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

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

int main()
{
}