lvalue как я пониаю это ссылка на данные и к ней обращаются через & чтобы данные в функцию не копировать а к rvalue обращаются типа так && только к чему обращаются не совсем понятно, к данным ссылки на данные что ли :)
Мне кажется тебе не в этот чат с таким вопросом,могу лишь сказать,что попробуй прочитать приложение к этой книге,там как раз про move семантику пишут
Я хочу просто понять куда эта rvalue ведет, на что ссылается, у сишников как то непонятно объяснение я несколько материалов посмотрел, мутно как-то мож это вообще не нужная фича какая то, но говорят память экономит
Я не спец по плюсам,не хочу тебя тоже вводить в неведение, но память она действительно экономит,считай ты вместо целой копии объекта копируешь только указатель(естественно предыдущий обнуляешь)
Так вот я понять хочу, для чего она нужна эта rvalue, для переименования ссылки на lvalue чтоли получается
можно конечно ещё в compiler explorer вбить,но там вряд ли что-то выдаст кроме как call
Я серьёзно тебе советую попробовать прочитать приложению у книжки,я тебе криво перескажу
Спасибо полистаю, но там врядли про rvalue есть, это свежая фича вроде а книжка 12 года
а нашел вроде стр 437 спасибо :)
По-моему r-value указывает на объект, точно так же как и обычная ссылка, а дополнительный '&', просто синтаксис чтобы компилятор мог по нему отличить конструктор копирования от конструктора перемещения. Два подряд '&', это не ссылка на ссылку.
ссылок на уровне асма нет. вот и все. Где-то обычные ссылки преобразуются в указатель, а где-то optimized out. Вообще люто советую юзать godbolt для этого
Обсуждают сегодня