Не, именно чтобы использовались векторные машинные команды (SSE, MMX или как их там) и синтаксис *отличался* от обычного, т.е. чтобы читая код это бросалось в глаза.
А gcc и так может развернуть в simd инструкции, однако придется это более явно указать, чем просто копирование через итератор, либо смотреть есть ли сейчас в gnu c++ lib такие низкоуровневые оптимизации. intel c++ вообще без вариантов развернет в sse команды.
> Не, именно чтобы использовались векторные машинные команды (SSE, MMX или как их там) и синтаксис *отличался* от обычного, т.е. чтобы читая код это бросалось в глаза.
Ты издеваешься? :) Разница между С и С++ как между Earth Simulator и пентиумом-1 без ммх, плюсовцы, бедняги, какой год жрут этот софтовый симулятор компилятора с кактусами вперемешку.
Будет ли данный код оптимизирован - другой вопрос, это уже зависит от конкретной реализации STL-я (сами плюсы позволяют проделать такую оптимизацию, через частичную инстанцинацию шаблонов).
В частности, как это делается и делалось 100 лет назад в плюсах, через STL (могу в мелких деталях напутать):
тогда, если использовать CustomVector вместо std::vector, то можно будет использовать operator+= прямо к вектору.
Предвидя ваши выпадки, сразу наперед скажу: std::transfrorm обладает большими возможостями, чем вышеназванный D-шный a[] += 4, в частности через transfrom можно сделать += только заданному диапазону вектора, а не всему, если такая возможность понадобится, или например можно добавить число к первой половине вектора, а результат положить во вторую.
P.S. Капча norent намекает, что пора думать об ипотеке.
Я знаком с С++ и STL, и хотел не это увидеть (впрочем я не ожидал иного). Абсолютно всё вышеперечисленное можно сделать и в D, там тоже есть шаблоны, частичная специализация и перегрузка операторов.
> Я знаком с С++ и STL, и хотел не это увидеть (впрочем я не ожидал иного). Абсолютно всё вышеперечисленное можно сделать и в D, там тоже есть шаблоны, частичная специализация и перегрузка операторов.
А в чем тогда тайный смысл a[] += 4? Уж не в том-ли, что разработчики языка D стараются впихнуть в него столько синтаксического сахара, сколько в него влезет, а потом еще мешок? Это ни к чему хорошему ни приведет.
1. оптимизация.
2. сразу видно, что производится операция с массивом.
> разработчики языка D стараются впихнуть в него столько синтаксического сахара, сколько в него влезет, а потом еще мешок? Это ни к чему хорошему ни приведет.
Кстати мне это тоже интересно. Вроде душой понимаю, что сахар вреден, но реально на нём писать достаточно приятно и этот сахар только на пользу. Тем более что ничего криминального не случится, если вместо сахара использовать аналогичный более длинный код.