Предупреждение компилятора (уровень 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()
{
}