Например:
В принятом ответе https://stackoverflow.com/a/14623480/1423254
Будет ли копирование elision и RVO по-прежнему работать для классов без конструкторов перемещения?
Да, RVO все еще срабатывает. На самом деле ожидается, что компилятор выберет: RVO (если возможно)
В принятом ответе https://stackoverflow.com/a/38043447/1423254
В соответствии с правилами исключения негарантированных копий это создаст временное значение, а затем переместится из этого временного значения в возвращаемое значение функции. Эта операция перемещения может быть опущена, но T все равно должен иметь доступный конструктор перемещения, даже если он никогда не используется.
Дело в том, что я думал, что перемещение RVO и lvalue (или как их назвать) — это две совершенно разные операции, но мой коллега сказал мне, что для запуска RVO возвращаемый класс нуждается в конструкторе перемещения. Итак, я проверил Интернет и ТАК, и, очевидно, информацию нельзя найти быстро...