共用方式為


編譯器警告 (層級 4) C4714

標記為 __forceinline 的函式 'function' 無法被內置

已選取指定的函式進行內嵌擴充,但編譯程式未執行內嵌。

雖然 __forceinline 對編譯程式具有比 __inline更強的指示,但內嵌仍會以編譯程式的任意方式執行,但不會使用啟發學習法來判斷內嵌此函式的優點。

在某些情況下,編譯程式不會因為機械原因而內嵌特定函式。 例如,編譯程式不會內嵌:

  • 如果函式會導致混合 SEH 和 C++ EH,則為 函式。

  • 當 -GX/EHs/EHa 開啟時,某些函式具有以傳值方式傳遞的複製建構物件。

  • 當 -GX/EHs/EHa 開啟時,傳回可回溯物件的函式。

  • 在沒有 -Og/Ox/O1/O2 編譯時,具有內嵌元件的函式。

  • 具有變數自變數清單的函式。

  • 具有 try (C++例外狀況處理) 語句的函式。

下列範例會產生 C4714:

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

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

int main()
{
}