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

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

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

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



Новости
Аниме-трейлер Heroes of the Storm посвящён механическим обликам героев
Blizzard выпустила обещанные вместе с появлением в Heroes of the Storm огнемётчика Блэйза новые легендарные механизированные облики нескольких героев: Тираэля, Регара, Абатура и Дехаки.
45-минутная запись геймплея Metal Gear Survive
Японское подразделение IGN представило публике 45-минутную запись геймплея Metal Gear Survive – последней части знаменитой серии, а также первой, в создании которой не принимал участие Хидео Кодзима.