-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Можно ли как-то без временных переменных?

Среда, 22 Июля 2020 г. 21:21 + в цитатник
OpenGL:
Цитата Wound @
Во первых, чтоб применять move - Нужен rvalue, т.е. функция должна принимать что то типа:

Не обязательно.
    void MyClass::set_something(std::vector value) // Передача по значению
    {
    this->something = std::move(value); // Переместит, лишних копирований не будет
    }


Цитата Qraizer @
Поэтому Стандарт запрещает передавать rvalue под такие параметры, ибо они, являясь временными объектами, по возврату из функции просто не дают возможности этими результатами воспользоваться, ибо они будут разрушены на ближайшей ; (ну, почти всегда на ближайшей), а значит программист практически наверняка облажался, написав такую конструкцию.

По мне так это просто недосмотр языка. По-моему не появится никаких проблем, если разрешить передавать rvalue в параметры-неконстантные ссылки, которых бы не было в случае параметров-константных ссылок.

https://forum.sources.ru/index.php?showtopic=419210&view=findpost&p=3834947

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку