Обычно части игры, которые чувствительны к производительности и тяжелы по математике и все еще имеют тенденцию работать на процессоре, а не на графическом процессоре, применяют одни и те же базовые операции к большому количеству элементов. Некоторые примеры: смешивание анимации, физические расчеты, тесты на видимость и т. Д.
Лучший подход к оптимизации такого рода проблем на текущем оборудовании консоли, как правило, состоит в том, чтобы попытаться собрать как можно больше совместной работы и стремиться к максимальной локальности данных, чтобы избежать дорогостоящих промахов кэша. Фактическая математика может быть затем оптимизирована с использованием встроенных SIMD и, как правило, будет тщательно оптимизирована вручную. Оптимизацию, которую предоставляют вам шаблоны выражений, можно выполнить относительно легко на этапе оптимизации рук, но есть и другие важные оптимизации, которые также могут быть выполнены, что шаблоны выражений вам не дадут. Часто этот критический код будет содержать разделы с пользовательскими оптимизациями для каждой целевой платформы и не будет очень переносимым.
Я думаю, что причина того, что шаблоны выражений не используются широко, заключается в том, что они добавляют сложность программного обеспечения (по всем причинам, описанным jalf) к не критичному к производительности коду, который на самом деле не гарантирует его, не покрывая все оптимизации, которые необходим для действительно критичного к производительности кода, который отображается вверху профилей.