Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1

lvalue to rvalue conversion

16.03.2023, 09:24. Показов 2206. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что представляет собой преобразование lvalue в rvalue, так сказать на низком уровне. Я тут вычитал что:

оно определяет, где в программе компилятор может включать (до оптимизации)
инструкцию “загрузка” для чтения значения из памяти.


Добавлено через 7 минут
то есть, как я понял, это просто чтение значения из памяти?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2023, 09:24
Ответы с готовыми решениями:

lvalue-to-rvalue conversion
Для чего ввели это понятие lvalue-to-rvalue conversion, как я понял в месте этого преобразования просто происходит чтение rvalue из памяти?...

C++ expressions - rvalue, glvalue, prvalue, xvalue, lvalue, а также rvalue reference: что есть что?
Доброго времени суток, не понимаю до конца деление С++ - выражений (приложение 1). Lvalue вроде просто - всё, от чего можно брать адрес. А...

RVALUE Ссылка, error: cannot bind non-const lvalue reference of type 'String&' to an rvalue of type 'String'|
Код не компилируется ниже 17 стандарта с++ с ошибкой error: cannot bind non-const lvalue reference of type 'String&' to an rvalue of...

35
 Аватар для eva2326
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
16.03.2023, 19:58
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от IGPIGP Посмотреть сообщение
Иначе мы себя бы чувствовали как rvalue слева. То есть плохо чувсвтвовали бы мы себя
https://onlinegdb.com/dpiw0C_OW

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
struct rvalue
{
    rvalue&& operator=(rvalue&&) &&
    {
        std::cout << "я - rvalue слева, и я чувствую себя хорошо\n"; 
        return std::move(*this);
    }
};
 
rvalue foo() { return {}; }
 
int main()
{
    foo() = foo();
}
0
16.03.2023, 20:03  [ТС]

Не по теме:

Цитата Сообщение от eva2326 Посмотреть сообщение
foo() = foo();
это xvalue и это к теме не относится (мы говорим о C++98), ты еще больше запутаешь тему.

0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.03.2023, 20:05
Вот тут приличная и удобоваримая статейка:
https://habr.com/ru/post/441742/
Я устал от громогласных окриков знатоков "'это не закрытый перелом rvalue, ЭТО - prvalue"...
Потому что prvalue это частный случай rvalue, то есть оно просто не может не быть rvalue. Давайте пока не будем мельчить. Сама тема гораздо крупнее)
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
16.03.2023, 20:29
Цитата Сообщение от _stanislav Посмотреть сообщение
(мы говорим о C++98)
Можно для тех кто "в танке", зачем мы говорим o "lvalue to rvalue conversion" в этом контексте ?
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.03.2023, 20:49
Цитата Сообщение от SmallEvil Посмотреть сообщение
Можно для тех кто "в танке", зачем мы говорим o "lvalue to rvalue conversion" в этом контексте ?
Ну давайте подождём корифеев. Слава генерирует отличные вопросы, но умеет и удивить. Не донимайте его.
0
 Аватар для eva2326
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
16.03.2023, 21:15
Цитата Сообщение от _stanislav Посмотреть сообщение
это xvalue
xvalue является rvalue

Цитата Сообщение от _stanislav Посмотреть сообщение
мы говорим о C++98
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
struct rvalue
{
    rvalue operator=(const rvalue&)
    {
        std::cout << "я - rvalue с++98, и я чувствую себя хорошо\n"; 
        return *this;
    }
};
 
rvalue foo() { return rvalue(); }
 
int main()
{
    foo() = foo();
}
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
16.03.2023, 21:26  [ТС]
eva2326, уже лучше, но все равно уход от темы, скажи лучше, что представляет собой преобразование lvalue в rvalue
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.03.2023, 21:34
eva2326, я о том и пишу. Мейерс пишет как швед. Будто горячей картошки в рот набрал. В итоге даже такие как вы, участники не различают значение (категорию) rvalue и ссылку на rvalue. Я привёл код выше lvalue to rvalue conversion
где показал как константная ссылка биндится к rvalue и представляет собой lvalue аж до тех пор пока не помрёт. Я не думаю, что вы троллите спекулируя на этих вещах. Скорее всего и сами не видите разницы. Что ж, - читайте. Мне зябко смотреть на вашу спину в такую погоду. Прям обнять хочется. И расплакаться.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.03.2023, 21:40
Цитата Сообщение от _stanislav Посмотреть сообщение
что представляет собой преобразование lvalue в rvalue
Представь слева стакан, а справа бутылку, в которой ровно на стакан и хватает. Так вот. Дальше работает семантика перемещения. В 98 было RVO. Да и при инициализации временным объектом типа такого:
C++
1
SomeClass some_one = SomeClass();
компиляторы уже умели что-то на вроде того. Копиэлизион. РВО. Бутылка, стакан и огурчик.
_stanislav, наберитесь терпения.
0
 Аватар для eva2326
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
16.03.2023, 22:12
Цитата Сообщение от _stanislav Посмотреть сообщение
что представляет собой преобразование lvalue в rvalue
Любое выражение, аргументом которого является lvalue, а результатом - rvalue

Например, любой каст к нессылочному типу:

C++
1
static_cast<T>(lvalue); // Где T не является ссылочным типом
ISO/IEC 14882:1998(E)
3.10.6
An expression which holds a temporary object resulting from a cast to a nonreference type is an rvalue (this includes the explicit creation of an object using functional notation
Цитата Сообщение от IGPIGP Посмотреть сообщение
В итоге даже такие как вы, участники не различают значение (категорию) rvalue и ссылку на rvalue
Бред.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Я привёл код выше lvalue to rvalue conversion
Представленый код вообще не имеет никакого отношения к lvalue to rvalue conversion

Цитата Сообщение от IGPIGP Посмотреть сообщение
где показал как константная ссылка биндится к rvalue и представляет собой lvalue
Вы показали как rvalue можно преобразовать в lvalue.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Я не думаю, что вы троллите
Избавьте меня, пожалуйста, от подобного бреда.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.03.2023, 22:42
Цитата Сообщение от eva2326 Посмотреть сообщение
Бред.
Бред что? Вы решили, что привязав константную ссылку к rvalue-значению вы превратили это rvalue в lvalue? Вот об этом я и пишу. Вам трудно помочь, но говорить с вами не буду. Я гороху почти не ем. Не смогу я с вами. Больше ко мне не обращайтесь. Небредовая вы наша.
0
 Аватар для eva2326
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
16.03.2023, 23:00
Цитата Сообщение от IGPIGP Посмотреть сообщение
Бред что?
Я выделила точную цитату.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Вы решили, что привязав константную ссылку к rvalue-значению вы превратили это rvalue в lvalue?
Нет, я не превращала это rvalue в lvalue
Как вообще вы умыдрились додуматься до такой мысли ?

Это rvalue как было этим rvalue, так этим же самым rvalue и осталось.
А вот результат всего выражения с участием этого rvalue является lvalue

Можно еще вот такой пример привести:
C++
1
2
3
4
5
some foo();
void bar(const some&);
...
 
bar(foo());  // rvalue to lvalue conversion
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вам трудно помочь
Я не просила у вас помощи.
Если мне понадобится помощь, я обращусь к компетентным людям.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.03.2023, 23:10
Цитата Сообщение от eva2326 Посмотреть сообщение
я обращусь к компетентным людям.
Удачи. Но не ко мне. Вы вырываете из контекста фразы. Вы пишете чтобы писать. Но главное, делаете вид, что что-то опровергаете. О воспитании и говорить не приходится. eva2326, увольте меня от ваших нападок. Я к вам не обращался. Но вы начинаете, а потом, делаете вид, что вам досаждают. Да еще и бредом. В тонком разговоре мне нет желания составить вам компанию. Вы можете обращаться к другим участникам, если им это понравится или просто писать свою точку зрения. Это будет полезно. Не не пишите в мой адрес. Повторяю.
0
 Аватар для eva2326
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
16.03.2023, 23:24
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не не пишите в мой адрес
Двойное отрицание.
Стало быть, вы хотите, что бы я писала в ваш адрес?

На самом деле мне все равно, чего вы там хотите.
Вы находитесь в публичном поле, и здесь есть свои правила.
И пока я их не нарушаю, я могу писать что захочу, и кому захочу.
А вы, если вам так не нравятся реакции участников на ваши фантазии, можете общаться где нибудь в привате.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.03.2023, 23:29
Цитата Сообщение от eva2326 Посмотреть сообщение
И пока я их не нарушаю, я могу писать что захочу, и кому захочу.
Не нарушаете? Слово бред в адрес оппонента, это ваша норма жизни? Это ваше воспитание. Даже опечатка Но->Не вызывает у вас радость) Ну и ладно.
1
 Аватар для eva2326
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
16.03.2023, 23:32
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не нарушаете?
Не нарушаю.
Цитата Сообщение от IGPIGP Посмотреть сообщение
Слово бред в адрес оппонента, это ваша норма жизни?
Для меня норма жизни - называть вещи своими именами.
Бред я называю бредом.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Это ваше воспитание.
Моё воспитание не ваше дело.
А будете переходить на мою личность, я позову модераторов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.03.2023, 23:32

Rvalue и lvalue
Вот так я возвращаю lvalue ссылку на lvalue объект int&amp; test() {int a; return a;} Вот так rvalue ссылку на rvalue объект ...

Проблема с rvalue и lvalue
Не совсем понятно почему создавая ссылку на rvalue она определяется как lvalue ? Пример: #include &lt;iostream&gt; using...

Rvalue и lvalue ссылки
Здравствуйте, что расскажите, пожалуйста что такое lvalue и rvalue ссылки и с чем их едят, где можно использовать, и чем отличается...

Непонятное поведение rvalue/lvalue
Всем привет, объясните, пожалуйста, немного про р-вэлью и л-вэлью в этом коде: #include &lt;iostream&gt; using namespace std; void...

Что такое rvalue и lvalue
как понимать эти штуки?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru