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

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

Где определение выражения посмотреть. Давно про компиляторы не читал.
...
Рейтинг: 0 / 0
16.05.2019, 13:26
    #39814006
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, что означает lvalue в академической формулировке
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
16.05.2019, 13:40
    #39814008
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, что означает lvalue в академической формулировке
Cerebrum, спасибо. Я вот почитал еще немного, для меня наиболее понятным стало определение, что
lvalue - результат вычислений выражения (объект, переменая и т.д.) который можно использовать в дальнейшем, т.е. необходимое условие для того что бы объект был lvalue это то что бы он был не временным. Так?
...
Рейтинг: 0 / 0
16.05.2019, 13:42
    #39814010
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, что означает lvalue в академической формулировке
Cerebrumda17,
lvalue - это любое выражение, для которого можно получить его адрес:

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

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

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

PS: И да, lvalue можно применять везде, где требуется rvalue.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.05.2019, 13:51
    #39814015
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, что означает lvalue в академической формулировке
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
16.05.2019, 13:54
    #39814018
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите, что означает lvalue в академической формулировке
Dima T,

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

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

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

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


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

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

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

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

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

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

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

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


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