Задать вопрос
@JustMoose
Программист. Радиолюбитель. Прокрастинатор ;)

Будет ли удалён std::move?

Всем привет.
Мне кажется, я читал, что где-то в районе С++ 20 компилятор поумнеет в достаточной степени, чтобы самостоятельно делать std::move, и программисту больше не нужно будет заниматься хотя бы этой оптимизацией.
Но.
Найти это не могу.
Если вы вдруг тоже это слышали, киньте ссылку!

(Ну или мне придётся считать, что я что-то напутал ;) )
  • Вопрос задан
  • 134 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
В С++ 20 этого точно не будет. Более того и в планах такого я не видел. Проблема в том, что move (семантика, а не сама команда) это не оптимизация, а принципиально другая операция. Оптимизация отличается тем, что она не меняет поведение (на самом делле не всегда, но в большинстве случаев). Нам может быть важен тот факт, что то место откуда мы сделали move станет пустым. Но при обычно присваивании это не так.
В тех местах, где это можно делать автоматически, оно и так работает. RVO, NRVO оптимизации для возврата значений. Да и временные объекты по определению не требуют явного использования move.
Ответ написан
Комментировать
@dsadso
Возможно, вы слышали про copy elision. Это C++17.
Ответ написан
Комментировать
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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