編譯器警告 (層級 4) C4714
標示為__forceinline未內嵌的函式 'function'
已選取指定的函式進行內嵌擴充,但編譯器未執行內嵌。
雖然 __forceinline
對編譯器具有比 __inline
更強的指示,但內嵌仍會以編譯器的任意方式執行,但不會使用啟發學習法來判斷內嵌此函式的優點。
在某些情況下,編譯器不會因為機械原因而內嵌特定函式。 例如,編譯器不會內嵌:
如果函式會導致混合 SEH 和 C++ EH,則為 函式。
當 -GX/EHs/EHa 開啟時,某些函式具有以傳值方式傳遞的複製建構物件。
當 -GX/EHs/EHa 開啟時,傳回可回溯物件的函式。
在沒有 -Og/Ox/O1/O2 編譯時,具有內嵌元件的函式。
具有變數引數清單的函式。
具有 (C++ 例外狀況處理) 語句的
try
函式。
下列範例會產生 C4714:
// C4714.cpp
// compile with: /Ob1 /GX /W4
__forceinline void func1()
{
try
{
}
catch (...)
{
}
}
void func2()
{
func1(); // C4714
}
int main()
{
}