В previous question оказалось, что простая функция возвращаемого значения всегда копирует свой аргумент return
в назначаемую переменную.Оптимизация конструктора копий по сравнению с оптимизацией возвращаемого значения
Требуется ли это по стандарту, или можно оптимизировать функцию, построив переменную «назначено» даже внутри тела функции?
struct C { int i; double d; };
C f(int i, int d) {
return C(i,d); // construct _and_ copy-construct?
}
int main() {
C c = f(1, 2);
}
Не могли бы вы предоставить номер раздела из стандарта, пожалуйста? –
То же, что и Нейл: 12.15. Вы интерпретируете это по-другому? – 2009-03-20 12:11:30