На разных ресурсах нашел разные определения rvalue
, lvalue
.
Как же правильно?
right value
или read value
?
left value
или locator value
?
Исходно речь шла про правую и левую части относительно оператора присваивания. Но правильного варианта такой простой расшифровки нет и быть не может. Термины так и останутся rvalue
и lvalue
. А вот какой в них вложен смысл чётко прописано в стандарте. Всё это образует категории выражений.
glvalue
Выражение, чьё вычисление определяет сущность объекта, битового поля или функции.
prvalue
Выражение, чьё вычисление инициализирует объект, битовое поле или вычисляет значение операнда оператора, с соответствии с контекстом использования.
xvalue
Это glvalue, которое обозначает объект или битовое поле, чьи ресурсы могут быть повторно использованы (обычно потому, что они находятся около конца своего времени жизни).
lvalue
Это glvalue, которое не является xvalue.
rvalue
Это prvalue или xvalue.
Таким образом любое выражение есть в первую очередь lvalue, xvalue или prvalue. rvalue - это уже обобщение.
Не знаю, что Вы имеете ввиду под вопросом "как правильно". rvalue и lvalue - это категории выражений. Вот что написано в стандарте:
— A glvalue is an expression whose evaluation determines the identity
of an object, bit-field, or function.
— A prvalue is an expression > whose evaluation initializes an object or a bit-field, or computes the
value of the operand of an operator, as specified by the context in
which it appears.
— An xvalue is a glvalue that denotes an object or
bit-field whose resources can be reused (usually because it is near
the end of its lifetime).
— An lvalue is a glvalue that is not an xvalue.
— An rvalue is a prvalue or an xvalue.
//...
[Note: Historically, lvalues and rvalues were so-called because they could appear on the left- and right-hand side of an assignment (although this is no longer generally true); glvalues are “generalized” lvalues, prvalues are “pure” rvalues, and xvalues are “eXpiring” lvalues. Despite their names, these terms classify expressions, not values. — end note]
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В общем я делаю оболочку для одной программыДля запуска этой программы нужно в cmd отправить вот такой запрос: "C:\folder\executable
Есть класс Date (день, месяц, год) И есть вектор этих объектов Надо с помощью обычной сортировки sort() отсортировать по году и по названию месяца
Вопрос по Qt/ Создал много виджетов которые загружаются на одной главной формеМне нужно собрать все ключи чтобы менять объектам текст(лэйбл)