Вернуть объект из функции по значению и использовать его в присваивании / копировании c'tor C++

Предположим, что функция возвращает объект класса A по значению.

A f();

Предположим, у нас есть позднее назначение / копирование c'tor:

a = f(); //a is of type A - assignment
A aa = f(); // copy c'tor

d'or возвращенного объекта вызывается после присваивания / инициализации?

1 ответ

Если возвращаемый объект будет уничтожен до инициализации копирования, вы должны скопировать в aa разрушенный объект. Это что-то странное.

Оптимизация возвращаемого значения также может иметь место, поэтому не будет необходимости копировать возвращаемый объект и уничтожать его.

Другие вопросы по тегам