Re[13]: Какая версия С++ ваша основная?
От: rg45 СССР  
Дата: 13.01.23 14:48
Оценка: 3 (1) +1
Здравствуйте, Skorodum, Вы писали:

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

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

Да, именно. Если резюмировать, то mandatory copy/move elision можно рассматривать как возможность расширения конструкторов. Сам конструктор содержит в себе только те действия, которые свойственны непосредственно классу объекта. А над этим мы можем еще построить массу разнообразных фабрик/загрузчиков/парсеров и т.п., в которых будут выполняться действия по созданию объекта, специфичные для мира, в котором этот объект создается. И в итоге всегда будем иметь под рукой простую и удобную процедуру создания объекта.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 13.01.2023 14:52 rg45 . Предыдущая версия . Еще …
Отредактировано 13.01.2023 14:51 rg45 . Предыдущая версия .
Отредактировано 13.01.2023 14:49 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.