Size: a a a

2019 July 22

n

norlin in Unreal Engine
Anton Rassadin
Inline не про оптимизацию, а про множественные определения.
ну оно же избавляет от лишнего вызова функции
источник

AR

Anton Rassadin in Unreal Engine
norlin
ну оно же избавляет от лишнего вызова функции
Нет
источник

LM

Lex Modyanov in Unreal Engine
norlin
Господа, гулпый вопрос: а можно ли юзать FORCEINLINE с интерфейсами и виртуальными методами?
An excerpt from the excellent C++ faq: "The only time an inline virtual call can be inlined is when the compiler knows the "exact class" of the object which is the target of the virtual function call. This can happen only when the compiler has an actual object rather than a pointer or reference to an object
источник

PL

Peter Leontev in Unreal Engine
в случае виртуальных функций ты (компилятор) даже зачастую понять не сможешь, какую именно функцию  ты вызываешь
https://stackoverflow.com/questions/6842690/will-forceinline-virtual-function-from-base-class-be-forceinlined-in-derived
источник

СВ

Сэр Гусь Важный... in Unreal Engine
Peter Leontev
FORCEINLINE у тебя вряд ли сработает в случае виртуальных методов, и вообще зачем оно тебе?
В результате профилирования вылезла медленная виртуальная функция?
сработает если на компиляции класс детерменирован
источник

n

norlin in Unreal Engine
как это нет? а что оно тогда делает?
источник

PL

Peter Leontev in Unreal Engine
Сэр Гусь Важный
сработает если на компиляции класс детерменирован
это как, если у тебя vtable?
источник

СВ

Сэр Гусь Важный... in Unreal Engine
Peter Leontev
это как, если у тебя vtable?
компилятор ебашит явную ссылку
источник

n

norlin in Unreal Engine
ну вот да, я потому и спрашивал, что вроде как не должно работать, но мало ли
источник

AR

Anton Rassadin in Unreal Engine
источник

AR

Anton Rassadin in Unreal Engine
Го читать доки
источник

СВ

Сэр Гусь Важный... in Unreal Engine
Lex Modyanov
An excerpt from the excellent C++ faq: "The only time an inline virtual call can be inlined is when the compiler knows the "exact class" of the object which is the target of the virtual function call. This can happen only when the compiler has an actual object rather than a pointer or reference to an object
@yolo_star я пропустил, Вот Лекс кинул
источник

AR

Anton Rassadin in Unreal Engine
источник

PL

Peter Leontev in Unreal Engine
Сэр Гусь Важный
компилятор ебашит явную ссылку
ага, ну теоретически может и сработает, только зачем, хех. А ВДРУГ НЕТ? Это же наверняка implementation-dependent/defined xD
источник

СВ

Сэр Гусь Важный... in Unreal Engine
Peter Leontev
ага, ну теоретически может и сработает, только зачем, хех. А ВДРУГ НЕТ? Это же наверняка implementation-dependent/defined xD
оптимизация
источник

СВ

Сэр Гусь Важный... in Unreal Engine
Anton Rassadin
Го читать доки
токсичненько
источник

LM

Lex Modyanov in Unreal Engine
Сэр Гусь Важный
компилятор ебашит явную ссылку
Не, инлайн это он код подставляет вместо вызова функции.
источник

PL

Peter Leontev in Unreal Engine
Сэр Гусь Важный
оптимизация
надеюсь в g++, msvs и clang так
источник

n

norlin in Unreal Engine
> The original intent of the inline keyword was to serve as an indicator to the optimizer that inline substitution of a function is preferred over function call, that is, instead of executing the function call CPU instruction to transfer control to the function body, a copy of the function body is executed without generating the call. This avoids overhead created by the function call
источник

n

norlin in Unreal Engine
именно что для оптимизации вызова функции
источник