4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
|
||||||||||||||||
1 | ||||||||||||||||
Rvalue и lvalue24.07.2020, 23:54. Показов 3266. Ответов 54
Метки нет (Все метки)
Вот так я возвращаю lvalue ссылку на lvalue объект
0
|
24.07.2020, 23:54 | |
Ответы с готовыми решениями:
54
C++ expressions - rvalue, glvalue, prvalue, xvalue, lvalue, а также rvalue reference: что есть что? RVALUE Ссылка, error: cannot bind non-const lvalue reference of type 'String&' to an rvalue of type 'String'| Проблема с rvalue и lvalue Rvalue и lvalue ссылки |
"C with Classes"
|
|
25.07.2020, 17:55 | 21 |
в С++ то же самое, сначала в этом году кажиться это нормально, через 10 лет уже нет.
Добавлено через 2 минуты Vanconts, короче чел, я всегда успокаиваю себя мыслью, и не только я, что тут много людей могут сказать мол, так сложилось исторически и стандарт приходиться переписывать аккуратно.
0
|
"C with Classes"
|
|
25.07.2020, 22:29 | 23 |
я же скинул тебе класную статейку http://rsdn.org/article/cpp/lvalue.xml
Добавлено через 29 секунд чувак читать надо долго и упорно
0
|
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
|
|
25.07.2020, 22:38 [ТС] | 24 |
_stanislav, та в этой статье объясняется только разные (но не 100%тные) способы как определить rvalue или lvalue
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
26.07.2020, 03:25 | 26 |
Адреса бывают у объектов. У выражений нет адресов (ни у каких). Это разного уровня сущности.
1
|
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
|
||||||
26.07.2020, 21:20 [ТС] | 27 | |||||
DrOffset, Что значит у выражений нет адресов? у самых выражений нет адресов по типу
Если результат выражения не будет иметь адреса то если результатом выражения будет временный объект то где он будет хранится на время его существования? Он же должен где-то хранится со всеми его членами
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
26.07.2020, 21:47 | 28 |
Выражение - это сущность уровня компиляции.
Объект - это сущность уровня исполнения. Адреса появляются во время исполнения - это очевидно. Не забывайте, что язык С++ статически типизированный и компилируемый. Большая часть семантики программы разрешается на этапе компиляции. Все эти rvalue-lvalue - это понятия времени компиляции. Добавлено через 3 минуты Вы опять все мешаете в кучу. Выражение может привести, а может и не привести к созданию объекта. rvalue\lvalue - это категория выражений, забудьте вообще про объекты и адреса, это не поможет вам понять.
0
|
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
|
|
26.07.2020, 21:58 [ТС] | 29 |
DrOffset, категория выражений относится к самим выражениям , а не к их результату?
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
26.07.2020, 22:24 | 30 |
Vanconts, к результату. Но этот результат в этом рассмотрении - это не объект. Это обозначение синтаксической применимости результата в некотором контексте. Т.е. от этой категории зависит как будет рассматриваться результат выражения в том контексте, в котором вы его пишете: будут ли применяться преобразования, будет ли ошибка компиляции, как поведет себя выбор перегруженной функции или как будет дедуктироваться параметр шаблона, и т.д. Все это перечисленное происходит на этапе компиляции и никак непосредственно не связано с собственно объектом. Объект может появляться на каких-то этапах вычисления выражений, но он существует как бы в параллельном мире, в том, который будет иметь значение только когда вы программу запустите.
Добавлено через 17 минут Vanconts, ваша ошибка в том, что вы пытаетесь интерпретировать это так, как будто С++ скриптовый язык. Вы написали некое выражение и вам кажется что все его компоненты обязательно должны быть где-то в памяти при вычислении. Я специально второй раз акцентирую внимание на том, что С++ статически типизированный и компилируемый язык. Это очень важно при его понимании.
1
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
26.07.2020, 23:49 | 31 |
Результат — это обозначение применимости результата?
Откуда вообще всё это взято, про "результат"?
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
27.07.2020, 00:19 | 32 |
0
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
27.07.2020, 00:27 | 33 |
0
|
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
|
||||||
27.07.2020, 02:17 [ТС] | 34 | |||||
argcargv, DrOffset,
тоесть
0
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
27.07.2020, 02:39 | 35 |
tt(); это expression-statement, expression в котором является discarded-value expression:
Сообщение от https://timsong-cpp.github.io/cppwp/n4861/stmt.expr
Сообщение от https://timsong-cpp.github.io/cppwp/n4861/expr.context#2
Сообщение от https://timsong-cpp.github.io/cppwp/n4861/conv.rval
1
|
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
|
|
27.07.2020, 11:39 [ТС] | 36 |
argcargv,
абсолютно ничего не понял , почему expression-statement , что такое discarded-value expression?
и как это всё работает?
0
|
52 / 30 / 13
Регистрация: 21.05.2017
Сообщений: 109
|
|
27.07.2020, 11:51 | 37 |
Позволь задать один вопрос. Зачем тебе это нужно, во всяком случае, на данном этапе?
На практике в подавляющем большинстве случаев об этом даже задумываться не нужно.
0
|
4 / 3 / 1
Регистрация: 08.08.2019
Сообщений: 238
|
|
27.07.2020, 12:44 [ТС] | 38 |
MasterOfAlteran, Мне это не даёт покоя, поэтому я хочу в этом разобраться, но, как я понял, видимо зря я захотел )
0
|
52 / 30 / 13
Регистрация: 21.05.2017
Сообщений: 109
|
|
27.07.2020, 12:53 | 39 |
Из того что я здесь вижу - не хочешь.
Ты просишь, чтобы тебе всё объяснили. Тебе объясняют, оказывается, ты друггих аспектов не знаешь, снова просишь тебе объяснить. Если бы действительно хотел бы разобраться, то открыл бы документацию и стал разбираться. Сам! Это ключевое.
1
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
27.07.2020, 12:55 | 40 |
На это от меня была ссылка выше.
На это тоже была ссылка выше.
1
|
27.07.2020, 12:55 | |
27.07.2020, 12:55 | |
Помогаю со студенческими работами здесь
40
Непонятное поведение rvalue/lvalue Почему i++ это rvalue, а ++i lvalue? Что такое rvalue и lvalue Семантика перемещения rvalue\lvalue ссылок Lvalue, xvalue, glvalue, rvalue, prvalue Rvalue, lvalue, xvalue, prvalue, glvalue Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как написать микросервис на Go/Golang
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|