Предупреждение компилятора (уровень 4) C4714
функция "function" помечена как __forceinline не вложена
Данная функция была выбрана для встроенного расширения, но компилятор не выполнял встраивание.
Хотя __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()
{
}