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

Сообщение Re[13]: Какая версия С++ ваша основная? от 13.01.2023 14:48

Изменено 13.01.2023 14:49 rg45

Re[13]: Какая версия С++ ваша основная?
Здравствуйте, Skorodum, Вы писали:

R>>Если же изменить тип результата make_foo на std::optional<Foo>, все эти возможности тут же пропадут.

S>Понял: мы же не может Foo в optional копировать. Спасибо.

Да, именно. Если резюмировать, то mandatory copy/move elision можно рассматривать как возможность расширения конструкторов. Сам конструктор содержит в себе только те действия, которые свойственны непосредственно классу объекта. А над этим мы можем еще построить массу разнообразных фабрик/загрузчиков/парсеров и т.п., к которых будут выполняться действия по созданию объекта, специфичные для мира, в котором этот объект создается.
Re[13]: Какая версия С++ ваша основная?
Здравствуйте, Skorodum, Вы писали:

R>>Если же изменить тип результата make_foo на std::optional<Foo>, все эти возможности тут же пропадут.

S>Понял: мы же не может Foo в optional копировать. Спасибо.

Да, именно. Если резюмировать, то mandatory copy/move elision можно рассматривать как возможность расширения конструкторов. Сам конструктор содержит в себе только те действия, которые свойственны непосредственно классу объекта. А над этим мы можем еще построить массу разнообразных фабрик/загрузчиков/парсеров и т.п., в которых будут выполняться действия по созданию объекта, специфичные для мира, в котором этот объект создается.