В предыдущем вопросе выяснилось, что простая функция возврата по значению всегда копирует свой аргумент 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 );
}