Это простой и старый вопрос. Я уверен, что его нужно спросить в другом месте. Но после более чем 30 минут поиска в Google я решил снова попросить здесь. Поток информации о ссылке rvalue затрудняет поиск правильных веб-страниц для этой проблемы.Почему Rvalue не может связывать ссылку Lvalue?
В чем причина такого решения, что rvalues не может связывать ссылки lvalue?
Если я правильно понял, rvalues являются временными, тогда как lvalues все еще живут после окончания выражения. Не имеет смысла связывать «постоянное» значение с временным. – SlySherZ
@SlySherZ Это правильно. Однако в стандарте говорится, что мы можем связывать rvalues с константными ссылками lvalue. Затем жизнь rvalue распространяется на срок службы константы. Почему ссылки lvalue (без const) не могут иметь такое поведение, как ссылки на константу lvalue? – Sungmin
Я думаю, что это связано с оптимизацией компилятора (rvalues являются постоянными, что позволяет компилятору обрабатывать их более эффективным способом). Если вы хотите эффективно привязать и изменить значение rvalue, вы можете использовать семантику перемещения (https://stackoverflow.com/questions/3106110/what-are-move-semantics). –