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

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

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

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



Новости
Microsoft, Sony и крупные издатели создали группу по улучшению HDR-игр
Во главе HGIG стоят LG, Microsoft, Sony и Vizio.
Новый стриминговый сервис Stream TV от Valve готовится к запуску
Стриминговая платформа Steam TV должна составить конкуренцию Twitch, и как оказалось она пока находится на стадии тестирования.