Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 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. Показов 2191. Ответов 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
Ответ Создать тему
Новые блоги и статьи
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru