макроса FORCEINLINE?
Я посмотрел в документации, что он нужен для пересчета некоторых операций во время выполнений и используют его в основном для гет и сет методов, но было написано, что надо использовать аккуратно.
Опасностей никаких. Форсинлайн может сработать а может и не сработать даже если ты его написал. Это решает компилятор
Понял, спасибо!
Форсинлайн это наследие очень старого и очень бородатого геймдева, где каждый битик экономили Лучше отдать такие моменты компилятору и не париться
Дополню ответ 1000-7 FORCEINLINE в анриле разворачивается в платформоспецифичный код, например на винде в __forceinline, идея этого макроса в том что ты говоришь компилятору "я знаю лучше тебя что код этой функции должен быть вставлен в место вызова", в отличие от простого inline компилятор должен послушаться (хотя на некоторых платформах FORCEINLINE разворачивается в обычный inline). __forceinline используется обычно для точечных оптимизаций, когда программист попрофайлил и уверен что инлайнинг какой-то функции может сделать его код быстрее. Опаность только в том, что если ставить где попало, можно ухудшить производительность. https://www.cs.technion.ac.il/users/yechiel/c++-faq/inline-and-perf.html
Дополню, что в шаблоне TPS, эпики делают геттеры для камеры и спрингарма FORCEINLINE
Благодарю за объяснение!
Обсуждают сегодня