powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите, что означает lvalue в академической формулировке
25 сообщений из 36, страница 1 из 2
Подскажите, что означает lvalue в академической формулировке
    #39813978
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, что-то читал статьи по семантике перемещения, везде очень расплывчатые и нечеткие формулировки.
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39813989
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выражение, способное стоять слева от знака присваивания.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39813990
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17,

Мейерса читай
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39813995
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl, а сами Вы читали мейерса? У меня есть экземпляр его книги. Мрак. Ощущение, что студенты гуманитарии машинным переводом переводили.
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39813996
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВыражение, способное стоять слева от знака присваивания.

Где определение выражения посмотреть. Давно про компиляторы не читал.
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814006
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17,

lvalue в классическом понимании - это left value, то есть выражение стоящее слева от знака присваивания.
но это определение не совсем точно отражает смылсл понятия lvalue, например,

int a = 3;

а - это lvalue;
3 - это rvalue;

int n = a;

n - это lvalue
a - это тоже lvalue, хотя и стоит справа, но в то же время a - это не rvalue, исходя из того, что
lvalue - это любое выражение, для которого можно получить его адрес:

int* pA = &a;

получить адрес лексемы 3 нельзя, поэтому в отличие от a стоящей справа в выражении int n = a;
3 не будет являться lvalue вне зависимости от ее месторасположения относительно =
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814008
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum, спасибо. Я вот почитал еще немного, для меня наиболее понятным стало определение, что
lvalue - результат вычислений выражения (объект, переменая и т.д.) который можно использовать в дальнейшем, т.е. необходимое условие для того что бы объект был lvalue это то что бы он был не временным. Так?
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814010
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumda17,
lvalue - это любое выражение, для которого можно получить его адрес:

А если мы попытаемся получить адрес временного объекта? Или это невозможно?
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814012
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17Cerebrumda17,
lvalue - это любое выражение, для которого можно получить его адрес:

А если мы попытаемся получить адрес временного объекта? Или это невозможно?
Что такое "временный объект"?
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814013
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17Так?
да, именно так
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814014
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17необходимое условие для того что бы объект был lvalue это то что бы он был не временным.

Чтобы он не был константным. Иначе ему ничего присвоить будет нельзя.

PS: И да, lvalue можно применять везде, где требуется rvalue.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814015
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tda17пропущено...

А если мы попытаемся получить адрес временного объекта? Или это невозможно?
Что такое "временный объект"?

видимо rvalue как в

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
int foo(int nValue)
{
...
}

int main()
{
    int a = 3;
    int n = 5;

    foo(a + n);
}


результат a + n, до того как он стал nValue является временным объектом, у которого нельзя получить адрес, то есть сумма есть rvalue
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814018
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Наверное что-то вроде
Resource r;
r = Resource('i am temp object');
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814023
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17Dima T,

Наверное что-то вроде
Resource r;
r = Resource('i am temp object');
Нет, это полноценный объект размещенный на стэке. У него есть адрес, т.е. он может быть lvalue.
Последняя строчка твоего примера использует его как lvalue

ИМХО забудь пока про lvalue и почитай какую-нибудь книгу про С++. Это нюансы терминологии С++, а чтобы их понять надо знать все остальное.
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814026
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНет, это полноценный объект размещенный на стэке. У него есть адрес, т.е. он может быть lvalue.
Последняя строчка твоего примера использует его как lvalue

не хочу становится адвокатом, da17, но скорее всего у него речь не про r, а про лексему 'i am temp object'
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814030
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще я думал, что
запись
Код: sql
1.
r = Resourcer() 


создаст временный объект, который будет передан в конструктор копирования объекта под именем r.
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814032
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17создаст временный объект, который будет передан в конструктор копирования объекта под именем r.
в данном случае это не конструктор копирования, а оператор присваивания

так что да, стоит почитать книжки по С++
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814275
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
da17Siemargl, а сами Вы читали мейерса? У меня есть экземпляр его книги. Мрак. Ощущение, что студенты гуманитарии машинным переводом переводили.Вот сейчас как раз очередной заход =)
Книга эффективный и современный С++. 42 рекомендации по С++11 и С++14

Перевод нормальный, как раз есть тема по xvalue
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814276
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все понимание кратно усложняется, когда в дело вступают шаблоны с универсальными ссылками
Код: plaintext
1.
tmpl<T>func(T&& value)
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814279
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglda17Siemargl, а сами Вы читали мейерса? У меня есть экземпляр его книги. Мрак. Ощущение, что студенты гуманитарии машинным переводом переводили.Вот сейчас как раз очередной заход =)
Книга эффективный и современный С++. 42 рекомендации по С++11 и С++14

Перевод нормальный, как раз есть тема по xvalue
Это книга для тех кто знает С++. Это справочник по новшествам С++11 и С++14.
Для изучения с нуля С++ эта книга никак не подходит.
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814280
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

но такие подробности не описываются в нубокнижках
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814285
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglDima T,

но такие подробности не описываются в нубокнижках
Поэтому я советовал ТС не вдаваться в подробности 21886240 и поизучать основы
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814297
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандарт будет достаточно академичен?
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814323
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryСтандарт будет достаточно академичен?
наврятли существуют компиляторы 100% соответствующие стандарту. Кроме того, стандарт сейчас как флюгер, они то добавляют что-то, то в следующей итерации от этого упорно избавляются, т.е. все течет, все изменяется.

Мейерса читал, книга - огонь!
...
Рейтинг: 0 / 0
Подскажите, что означает lvalue в академической формулировке
    #39814391
da17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglda17Siemargl, а сами Вы читали мейерса? У меня есть экземпляр его книги. Мрак. Ощущение, что студенты гуманитарии машинным переводом переводили.Вот сейчас как раз очередной заход =)
Книга эффективный и современный С++. 42 рекомендации по С++11 и С++14

Перевод нормальный, как раз есть тема по xvalue
Это там где петух разноцветный на обложке? А что значит очередной заход?
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите, что означает lvalue в академической формулировке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]