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