> -- Цитата:
> но в нормальных компиляторах С++ никаких лишних копирований не происходит.
А куда же их, пардон, девают?
Есть инструкция return, которая убирает из стека входные параметры икопируеттуда структуру. Есть инструкция присваивания в вызывающем коде, котораякопируетвозвращенное значение из стека в переменную. Таким образом, за лишнее удобство платим накладными расходами. А поскольку удобство мы все любим, то платим постоянно. Чего стоят одни строковые операции типа Copy из стандартной библиотеки Дельфе, которые возвращают строку по копированию... Был пример, когда заменой стандартных процедур на процедуры, написанные в стиле Оберона, удалось увеличить производительность программы в 5 раз...
Конечно, в С++ за счет перегрузки операций можно обеспечить и удобство, и быстроту. Ну так это уже другой разговор...