Gistrec icon

C++ inline

Gistrec | PRO | 04/08/18 02:08:23 PM UTC | 0 ⭐ | 537 👁️ | Never ⏰ | []
C++ |

1.57 KB

|

None

|

0 👍

/

0 👎

Директива inline_recursion - позволяет развернуть рекурсивную функцию указанной или неопределённой глубины путём инлайнинга
 
Ключевое слово __forceinline (для С и С++) заставляет компилятор всегда инлайнить функцию, если это возможно.
 
Никогда не инлайнить функцию с помощью директивы noinline
__declspec(noinline) void func() {
}
 
Посоветовать компилятору выполнить инлайн (хотя компилятор может решить проигнорировать этот совет, если сочтёт его плохим)
inline void func() {
}
 
Компилятор не всегда может заинлайнить функцию. Например, во время виртуального вызова виртуальной функции: функция не может быть заинлайнена, т. к. компилятор не знает точно какая именно функция будет вызована. Другой пример: функция вызывается через указатель на функцию вместо вызова через её имя. Вы должны стараться избегать таких ситуаций, чтобы инлайнинг был возможен. Полный список всех подобных условий можно найти в MSDN.

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎