Информация об изменениях

Сообщение Re[8]: && member? от 11.09.2021 8:58

Изменено 11.09.2021 9:36 rg45

Re[8]: && member?
Здравствуйте, T4r4sB, Вы писали:

TB>Ну мув же.


Даже если мув и есть, то он формальный. Фактически образуется две разные ссылки (по одной в каждом объекте) на один и тот же временный объект. Кроме того, начиная C++17, применяется гарантированный copy/move elision. В этом случае образуется только один объект и мува уже нет. Этот код будет работать даже если мы каким-то способом запретим в классе SomeClass копирование и перемещение. Но проблема при этом все равно не уйдет. Просто нет у нас способа продлить время жизни временного объекта, созданного внутри функции после выхода из этой функции.
Re[8]: && member?
Здравствуйте, T4r4sB, Вы писали:

TB>Ну мув же.


Даже если мув и есть, то он формальный. Фактически образуется две разные ссылки (по одной в каждом объекте) на один и тот же временный объект. Кроме того, начиная C++17, применяется гарантированный copy/move elision. В этом случае образуется только один объект и мува уже нет. Этот код будет работать даже если мы каким-то способом запретим в классе SomeClass копирование и перемещение. Но проблема при этом все равно не уйдет. Просто нет у нас способа продлить время жизни временного объекта, созданного внутри функции после выхода из этой функции. Вот здесь
Автор: rg45
Дата: 11.09.21
более подробно.