170 похожих чатов

Std::Optional<Std::String> foo() { std::string res = "hello";

return std::move(res);
}
Вреден ли тут move?

21 ответов

42 просмотра

нет, даже полезен

d7d1cd- Автор вопроса
Aleksander Spichak
нет, даже полезен

А почему? А как же NRVO?

Vadim Ushakov
Разве не мешает rvo?

Посмотрите тип возвращаемого значения

Вреден

Aleksander Spichak
Почему

Потому что RVO (ну здесь NRVO)

Ilya Zviagin
Потому что RVO (ну здесь NRVO)

Там возвращаемый тип другой.

Ilya Zviagin
Потому что RVO (ну здесь NRVO)

А чем rvo не устраивает? Ну кроме того, что это произойдёт на усмотрение компилятора

Ilya Zviagin
Тогда RVO

Илья, вы наугад термины пишите?)

Ilya Zviagin
Тогда RVO

Мувается string, а не optional

d7d1cd- Автор вопроса
Aleksander Spichak
нет, даже полезен

Спасибо https://godbolt.org/z/5bMTr48zd

Ilya Zviagin
Так они почти неразличимы

Очень даже, если у возвращаемого объекта есть имя, то это уже не RVO

Ilya Zviagin
Так они почти неразличимы

RVO - возврат prvalue, NRVO - возврат переменной

Michael
Мувается string, а не optional

Да это тогда другое дело тогда тут надо посмотреть Есть ли у optional конструктор от RWR

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
16
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
Ну значит тебе повезло, мы же про транк говорим оба?
Александр (Rouse_) Багель
11
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
буквально один оставшийся вопрос при выполнении строчки mov eax, 5 операнд "5" будет присутствовать где-либо в памяти (любой), кроме как в памяти блока .code? подвопрос: как...
12
Карта сайта