Конгер Д.
Физика для разработчиков компьютерных игр
стр. 66

Все эти методы работают практически одинаково. Они создают безымянные временные переменные, вызывая конструкторы своих классов. Затем в списках параметров выполняется сложение или вычитание. Такой подход позволяет добиться максимальной эффективности, поскольку большая часть компиляторов C++ устранит безымянную переменную, заменив ее простым возвратом значения, получаемого в списках параметров конструкторов, причем сам конструктор вызываться не будет.

Еще одна причина эффективности этих методов в том, что они встраиваемые. Лично мне не нравятся определения классов, забитые кодом методов этих классов. Я помещаю в определения только типы элементов данных и прототипы функций. Однако мне не хочется терять эффективность, свойственную встраиваемым функциям, поэтому в заголовки функций добавлено ключевое слово inline везде, где это возможно.

Если вы работаете в Visual C++, то использовать inline не так уж необходимо. Visual C++ автоматически сделает встраиваемыми все функции, какие сможет. У него есть собственный алгоритм определения того, какие функции встроить. Когда вы компилируете версию программы для распространения, Visual C++ автоматически применит этот алгоритм. Если вы компилируете версию для отладки, то функции не делаются встраиваемыми, чтобы их выполнение можно было пошагово отслеживать с помощью отладчика.



Новости
Косплей Сенуя из Hellblade: Senua’s Sacrifice
Редакция Геймбокса не могла не поделиться с вами прекрасным отечественным косплеем на Сенуя из Hellblade: Senua's Sacrifice.
Bethesda подала в суд на Warner Bros. за Westworld
Как утверждает издание TMZ, компания Bethesda Softworks подала в суд на кинокомпанию Warner Bros. и студию Behaviour Interactive.