Форум программистов, компьютерный форум CyberForum.ru

Значения Lvalue и Rvalue - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка многомерной индексации http://www.cyberforum.ru/cpp/thread1793606.html
struct Matrix { int m; Matrix() {} ... operator(int n) {return ...;} }; Как перегрузить индексацию в классе чтобы можно было работать с массивом так:
C++ Как рисовать в видеокарту? Привем всем! Представим, что запущена какая-либо игра, могу ли я рисовать поверх изображения игры, то есть прямо в видеокарту? http://www.cyberforum.ru/cpp/thread1792890.html
Получение нажатия клавиши из неактивного окна C++
Привет всем! Как можно получить нажатую клавишу, если окно приложения не активно?
"std::domain_error" в bool-функции C++
Есть одна функция, которая сохраняет данные json в файл. Когда доходит дело до return, то срабатывает исключение "std::domain_error". bool Json::Save ( std::string file ) { std::ofstream str(file, std::ios::out | std::ios::trunc ); if (str.is_open()) { str << this->GetJsonData() << std::endl; str.close(); return true;
C++ Рефакторинг: функция с большим количеством параметров http://www.cyberforum.ru/cpp/thread1792177.html
День добрый. Скажите плз, гуру рефакторинга. Вот есть функция и в нее передаётся туча параметров. Как лучше исправить ситуацию? На ум приходит а) Создание некой структуры, которая будет содержать все эти поля. Заполняем структуру и передаём ее в фукнцию б) Большую часть переменных сделать полями класса, к которому относится функция. Мне, честно, не нравится ни первый, ни второй вариант. На...
C++ Аналог декоратора Python или ненормальное програмирование Всем привет. Часто приходится делать одну и ту же вещь в коде: DWORD time = ::GetTickCount(); bool result = SomeFunc(); while(!bOK && ::GetTickCount() - time < DEFINED_TIMEOUT) result = SomeFunc(); Что же тут происходит? Есть некая ф-ция, пусть будет SomeFunc. Мы должны иногда выполнять ее пока не достигнем нужного результата или пока не выйдет время таймаута. Например, ф-ция... подробнее

Показать сообщение отдельно
hoggy
6369 / 2587 / 452
Регистрация: 15.11.2014
Сообщений: 5,722
Завершенные тесты: 1
14.08.2016, 20:15     Значения Lvalue и Rvalue
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Там оно rvalue
то есть значение, которое выступает в качестве левостоящего
по вашему является "право стоящим" ?

Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Это вообще характеристики выражений.
и что такое "характиристика выражения" по вашему?

Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Это Вы явно не допоняли. Уперлись в свои "лево-право", которые тут только лишь из-за "старых устоев".
этого не достаточно.
если вы считаете,
что я ошибаюсь, тогда говорите в чем именно.
и как оно на самом деле.

моё понимание очень простое:

gvalue - самые обычные (именованные) объекты

rvalue - объекты, основной кейс которых - быть результатом выражения.
"r" - от слова "rigth". потому исторически так сложилось,
что в составе сложного выражения они находятся с правой стороны.

в свою очередь,
gvalue дополнительно подразделяется на lvalue и xvalue

lvalue - самые обычные именованные объекты.
"l" от слова "left" потому что их основной кейс в сложных выражениях - тусить с левой стороны.

xvalue - это бывший gvalue, который принудительно привели к rvalue-reference
то есть была обычная переменная.
а мы взяли и при помощи std::move заставили компилятор думать,
что объект - временный.

rvalue обозначает как бы"временный объект,
но как он образовался - не конкретизируется.
в свою очередь подразделяется на prvalue и xvalue

prvalue - это временные объекты (которые были рождены временными).
xvalue - писал выше.

вот и все понимание.

все эти категории на самом деле нужны лишь для того,
что бы конкретизировать контекст использования.

можно ещё и так сказать:
rvalue - это значение,
выступающее в качестве результата выражения.


Цитата Сообщение от HelicopterK52 Посмотреть сообщение
И, кстати, could - прошедшее время, так что тут "могли появляться", а не "могут появляться"
а сейчас что, уже не могут?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru