Учитывая следующий C++ код:Будет ли выполняться копирование конструктора для этого кода?
struct foo {
// Some definition with copy constructor.
};
const foo &getData();
const foo &alt1(getData());
const foo &alt2 = getData();
Будет ли разумный компилятор производить различный код для alt1
и alt2
? Другими словами, будет ли работать конструктор копирования alt1
, или компилятор разрешил оптимизировать это и назначить ссылку напрямую?
Этот вопрос имеет смысл, если 'alt1' и' alt2' не были ссылками. –