Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1

glvalue

30.09.2020, 16:47. Показов 2122. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Glvalue - это выражение, оценка которого определяет идентичность объекта, битового поля или функции.
Объясните пожалуйста, более развернуто (конкретно) данный термин (что значит идентичность в данном контексте).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.09.2020, 16:47
Ответы с готовыми решениями:

Rvalue, lvalue, xvalue, prvalue, glvalue
Не в той теме начали обсуждать. Создам новую. то, что знаю я (выучил к собесед-ию), но глубокого понимания у меня нет: lvalue - если...

Lvalue, xvalue, glvalue, rvalue, prvalue
Для чего понадобилось такое разделение выражений lvalue, xvalue, glvalue, rvalue, prvalue. Для конкретной категории очень желательно...

Что же это такое glvalue, xvalue, prvalue
Ребята помогите мне разобраться с этими понятиями. Как известно, чтобы что-то понять самому, надо уметь об этом объяснить кому-то...

33
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
30.09.2020, 20:06
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Zirak Посмотреть сообщение
Тут нужно ещё понимать, что понимается (извините за тавтологию) под выражением.
Имея ввиду, тот факт, что мы говорим о стандарте, уместно было бы найти определение для двух вещей -
выражение ;
вычисление ;
И ещё. Вот ваш вариант перевода. Я бы перевёл +- также:
Цитата Сообщение от Zirak Посмотреть сообщение
Glvalue это выражение, вычисление которого определяет ( в смысле устанавливает наличие или отсутствие) идентичность объекта, битового поля или функции.
Вычисление не определяет идентичность. Вычисление - процесс, дающий результат и/или порождающий события (сайдэффекты). Само по себе вычисление не может определять идентичность, если целевой объект результата не подразумевает определение результата-значения, для хранения данных по которым идентифицируются какие то идентифицируемые сущности. То есть, ключевая информация для идентификации в заданном контексте. Тут старались сказать нечто. Я догадываюсь что, не не уверен. Могу лишь сказать, что сказано плохо.
0
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
30.09.2020, 20:55
Цитата Сообщение от IGPIGP Посмотреть сообщение
уместно было бы найти определение для двух вещей -
выражение ;
Это найти не сложно: [expr.pre] 1. An expression is a sequence of operators and operands that specifies a computation. An expression can result in a value and can cause side effects. - Выражение это последовательность операторов и операндов, определяющая вычисление (тоже существительное). Результатом [вычисления] может являться значение, оно также может иметь побочные эффекты.

Цитата Сообщение от IGPIGP Посмотреть сообщение
вычисление ;
Я пробежался по стандарту, все места, где используется слово computation суть одно из:
- вычисление значения
- вычисление в широком смысле, как процесс (параллельные вычисления и т. п.)
- вычисление в широком смысле, как результат процесса вычисления


Цитата Сообщение от IGPIGP Посмотреть сообщение
Вычисление не определяет идентичность.
Слово "вычисление" может быть не только глаголом, но и существительным. И вот когда оно существительное (как у меня в комменте), оно означает действие по глаголу вычислить, который перфектный, т.е. в этом контексте "вычисление" и подразумевает результат. Результатом, помимо прочего, является и определение идентичности.

Добавлено через 5 минут
Цитата Сообщение от argcargv Посмотреть сообщение
Интересное предположение, но, думаю, неправильное.
Что ведут себя иначе? Это не предположение, это факт.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
30.09.2020, 21:28
Цитата Сообщение от Zirak Посмотреть сообщение
Выражение это последовательность операторов и операндов, определяющая вычисление (тоже существительное). Результатом [вычисления] может являться значение, оно также может иметь побочные эффекты.
Это хорошо. Я видел данное определение. Смотрите как интересно оно вписывается в определение gvalue. Если gvalue это
Glvalue это выражение, вычисление которого определяет ( в смысле устанавливает наличие или отсутствие) идентичность объекта, битового поля или функции.
То gvalue это
последовательность операторов и операндов, определяющая вычисление. Определяющая означает описывающая вычислительный процесс определённо однозначно. Итак gvalue это синтаксическая конструкция. Она определяет вычисление. Причём не просто вычисление, а такое вычисление, которое определяет идентичность
объекта, битового поля или функции.
Итак есть выражение которое определяет вычисление и это вычисление определят что-то. Если это существительное (процесс вычисления, разновидность вычисления - хорошо бы уточнить) то речь ведь не о результате. Результат определяется именно процессом/глаголом "вычисление". То есть, он "вычисляется". Если "вычисление" это всё-таки имя существительное (герундий как вы говорите) то оно определяет вид результата (разновидность). То есть, вычисление определённого вида определяет результат некоторого вида (сорта, категории, типа).
Хорошо. Вы предлагаете второе. То есть, хотели говорить о синтаксической конструкции которая задает вычисляемый результат такой разновидности, что эта разновидность позволяет её идентифицировать уникальным образом?
Нет, скорее всего. Речь идёт не о категории результатов, а о результатах перечисленных в определении как
объект, битовое поле или функция
И речь идёт о их идентификации. То есть, результат это объект, который можно идентифицировать по признаку - "это этот же самый объект" и т.п.
То есть, речь идёт о процессе - глаголе. И результатом являются некоторые сущности идентифицирующие объекты, функции, битовые поля. А gvalue пытаются определить как способ представления результата данного вычисления. То есть, по сути оно должно определять ссылку на
объекты, функции, битовые поля.
Почему определение включает способ выражения вычисления?
Ясно, что в результате различных выражений могут получаться результаты не имеющие вообще ни какого сохраняемого содержания. Но если хотели определить нечто, в этом смысле сохраняемое, то почему не говорится об адресе?
Что такое "идентифицируемый" в контексте определения. Какие есть параметры и способы однозначной идентификации?
Что объединяет в этом смысле функцию (указатель-константу или ссылку, как хотите), объект какого-то класса и битовое поле?
0
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
30.09.2020, 21:41
Цитата Сообщение от Zirak Посмотреть сообщение
Что ведут себя иначе?
Что причина в этом
0
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
30.09.2020, 21:54
Цитата Сообщение от IGPIGP Посмотреть сообщение
То есть, хотели говорить о синтаксической конструкции которая задает вычисляемый результат такой разновидности, что эта разновидность позволяет её идентифицировать уникальным образом?
Которая задаёт правила ведения вычислений. Выражение не обязано быть вычислимым.

C++
1
int a = 5 / 0; // это выражение, но оно невычислимо, поэтому UB
Цитата Сообщение от IGPIGP Посмотреть сообщение
То есть, речь идёт о процессе - глаголе.
Computation это существительное и только существительное.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Что такое "идентифицируемый" в контексте определения.
По словарному значению: характеристика сущности, позволяющая эту сущность выделить (=идентифицировать) среди прочих.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Что объединяет в этом смысле функцию (указатель-константу или ссылку, как хотите), объект какого-то класса и битовое поле?
Наличие идентичности и объединяет.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
30.09.2020, 22:18
Цитата Сообщение от Zirak Посмотреть сообщение
Которая задаёт правила ведения вычислений. Выражение не обязано быть вычислимым.
Zirak, это снова разрушение абстракций построенных на логике. Результатом вычисления может быть и сайдэффект. Если есть вычисление и оно конечно (имеет начало и конец) то оно вычислимо.
Цитата Сообщение от Zirak Посмотреть сообщение
Computation это существительное и только существительное.
Это деепричастный оборот если угодно, но сути оно не меняет. Можете везде где есть вхождения слова глагол (вы его ввели в обсуждение и я не стал спорить ибо не существенно) заменить деепричастием. Будет легче?
Цитата Сообщение от Zirak Посмотреть сообщение
По словарному значению: характеристика сущности, позволяющая эту сущность выделить (=идентифицировать) среди прочих.
Это пахнет не стандартом. Идентификация если это определяющий признак, должна быть абсолютно точно определена.
Zirak, стандарт это юридический документ для выяснения отношений разработчика, производителя, потребителя и третьих сторон (которые могут быть затронуты), в случаях не только определяющих цену товара. Это бывает и в случае когда определяется объём материального ущерба. Речь не о черновиках и опернсорсах, где рджект фром респонсибилити предваряет само начала ендюзер лиценз. То есть, по взрослому если. Почему это не определено?
Цитата Сообщение от Zirak Посмотреть сообщение
Наличие идентичности и объединяет.
Zirak, я понимаю, что у вас нет ответов и поэтому более не буду продолжать, пока. Пока не видно разницы между выражением и результатом. Непонятно что такое вычисление и что такое идентичность в смысле точных определений. Я не к формальным зазубринкам придираюсь. Не-а. Тут прямо на этом форуме есть немало людей, которые жонглируют понятиями объектов и выражений с таким акцентом, будто бы что-то подразумевают.
Но выражение и результат, это не одно и то же самое.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
01.10.2020, 14:52  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Но выражение и результат, это не одно и то же самое.
глупо утверждать обратное, и ежу ясно что выражение приводит к какому ни будь результату, хотя само выражение тоже может быть результатом другого выражения.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
01.10.2020, 15:05
Цитата Сообщение от _stanislav Посмотреть сообщение
глупо утверждать обратное, и ежу ясно что выражение приводит к какому ни будь результату, хотя само выражение тоже может быть результатом другого выражения.
Беда в том, что в стандарте сказано
Цитата Сообщение от access_now Посмотреть сообщение
A glvalue is an expression whose evaluation determines the identity of an object, bit-field, or function.
Но стандарт (даже имея рекомендательный характер) пишется как закон. Там может и не богато на разнообразие стилей, но принят определённый язык и метод изложения. Что касается так называемой рекомендательности то в СССР такого не было, например. Нельзя строить мосты, корабли и запускать ракеты по текстам написанным блондинами для блондинов. Я хоть и блондин, но вполне согласен именно с тем, что стандарт это закон распространяющийся на подведомственную область.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
01.10.2020, 15:10  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
A glvalue is an expression
а чем не понравилось это заявление?

Добавлено через 44 секунды
типа любой gvalue или что?
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
01.10.2020, 15:20
Цитата Сообщение от _stanislav Посмотреть сообщение
хотя само выражение тоже может быть результатом другого выражения
Это не сюда. Любое выражение должно иметь самую простую запись. Для выражений предапологающих результат (а других и не должно быть. Для действий не предполагающих результата лучше найти другое название так как это просто другая концепция) такая самая простая запись и есть результат.
Результаты должны быть перечислены по разновидностям. Вычисления которые их порождают тоже. Их связи должны быть описаны явно.
Можете заменить слова должествования на что-то более мягкое, если вам это кажется уместным. Это только лишь моё мнение.
И ещё. Невзирая на любые возможные оптимизации, высокоуровневые абстракции должны поддерживать операцию мысленного замещения так, что любую операцию или набор операций (порождающих результат для ссылок) можно было бы заместить результатом выражения (описываемого этими операциями) и общая логика оставалась валидной.

Добавлено через 1 минуту
Цитата Сообщение от _stanislav Посмотреть сообщение
а чем не понравилось это заявление?
Дело не в том что нравится, а что нет.
_stanislav, gvalue это результат вычислений определяемых выражением или выражение?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
01.10.2020, 15:33  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
gvalue это результат вычислений определяемых выражением или выражение?
надо подумать

Добавлено через 4 минуты
gvalue это абстракция от выражения которая имеет некие какие то свойства?
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
01.10.2020, 18:06
Цитата Сообщение от _stanislav Посмотреть сообщение
надо подумать
О том и гутарю. Выражение, это набор действий. Когда-то выражением считалось всё что возвращает некоторый результат. Слово "возвращает" было ключевым наряду со словом "результат". Но свойство возвращать результат и тогда не отождествляло выражение с результатом. Это как обед и сытость, секс и удовлетворение... Не одно и то же самое, хотя вещи связанные, обычно (хотя не всегда).
0
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
02.10.2020, 20:21
Цитата Сообщение от IGPIGP Посмотреть сообщение
Если есть вычисление и оно конечно (имеет начало и конец) то оно вычислимо.
Так в коде никаких вычислений нет, только набор инструкций, которые после всех обработок всякими компиляторами и линковщиками будет выполнять процессор. Компилятор не занимается определением вычислимости, он, грубо говоря, переводчик. Так что логика в порядке: мы в коде описали вычисление, но на практике оказалось, что выполнить его невозможно. Можно другими словами: я могу на бумаге описать задачу, в которой у меня тела с ненулевой массой покоя летают быстрее скорости света, но из этого никак не следует, что эти тела на самом деле могут передвигаться с такой скоростью.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Это деепричастный оборот
Я, конечно, не лингвист, но в английском, насколько я знаю, нет деепричастных оборотов, как и деепричастий в принципе. Слово computation это только и исключительно существительное.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Это пахнет не стандартом.
Стандарт не обязан подрабатывать толковым словарём. Вся терминология (ну, ладно, почти вся ) там описана, значения обычных слов читатель либо должен знать, либо может уточнить.

Цитата Сообщение от IGPIGP Посмотреть сообщение
То есть, по взрослому если. Почему это не определено?
Because reasons, duh. Будем честны, в какую страну не поедешь, там обязательно будет какой-нибудь дикий закон, или их набор, или их неполнота, или противоречия. Если уж на таком, казалось бы, важном уровне существуют проблемы, то чего ожидать от стандарта одного из сотен (тысяч?) языков программирования?

Цитата Сообщение от IGPIGP Посмотреть сообщение
выражением и результатом
Стандарт ясно говорит, что такое выражение. И ясно говорит, что результат может быть не определён, в то время как выражение определено всегда.
Выражение 1: бросок кубика с 50 гранями и чтение числа с верхней (противоположной той, что лежит на опоре) грани. Результат: неизвестный, но определённый.
Выражение 2: разыменовывание нулевого указателя. Результат: неизвестен, не определён.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
02.10.2020, 21:25
Цитата Сообщение от Zirak Посмотреть сообщение
Так в коде никаких вычислений нет, только набор инструкций, которые после всех обработок всякими компиляторами и линковщиками будет выполнять процессор.
Я не утверждал другого. Если метапрограммирование не трогать, то - да.
Цитата Сообщение от Zirak Посмотреть сообщение
Компилятор не занимается определением вычислимости, он, грубо говоря, переводчик.
Ещё как занимается. Другое дело, что он не всегда может... Но стандарт же не описывыает это. Стандарт гароантируент возможности компилятора (описывает ЕГО гарантии).
И ещё. Давайте не раскладывать компилятор на препроцессор, парсер и пр. Компилятор С++ это С++ включая среду С++ времени выполнения. То что можно писать вычисления которые невозможно выполнить и они компилируются не украшает компилятор, но такое возможно. Приведёт к проблемам в рантайме и что?
Давайте говорить хотя бы о том, что пытается гарантировать стандарт.
Цитата Сообщение от Zirak Посмотреть сообщение
Я, конечно, не лингвист, но в английском, насколько я знаю, нет деепричастных оборотов, как и деепричастий в принципе. Слово computation это только и исключительно существительное.
solve - решать solution - решение
pollute - загрязнять pollution - загрязнение
Наречие оно или причастие я не знаю. Я вижу что из глагола получается нечто похожее на существительное. Герундий я приплёл не к месту: run - running это тоже способ но другой.
Цитата Сообщение от Zirak Посмотреть сообщение
Я, конечно, не лингвист
Zirak, я не то что не любил язык в плане классификации и правописания. Я его не переваривал. Логика и гуманитарность - есть 2 вещи несовместные. Что из них от гения, а что ото зла я не берусь утверждать.
Важно же не это. Мы говорим о вычислении как о процессе. О выражении как о способе определить вычисление. И о результате вычисления который связывается со ссылкой.
Цитата Сообщение от Zirak Посмотреть сообщение
Стандарт не обязан подрабатывать толковым словарём. Вся терминология (ну, ладно, почти вся ) там описана, значения обычных слов читатель либо должен знать, либо может уточнить.
Вы много стандартов читали? Я читал много. И писал кое-что. Так вот. В разделе термины и определения описывается всё так, что толковые словари нервно курят там, где им место курить. Это если о нормальном (более-менее приличном) стандарте говорить. Определённость терминологии определяет точность стандарта. Это важно ещё и потуму, что стандарты, обычно, ссылаются друг на друга.
Цитата Сообщение от Zirak Посмотреть сообщение
там описана, значения обычных слов читатель либо должен знать, либо может уточнить.
Когда разбирают аварию, - корабль затонул, например. Читателями становятся комиссии разработчика, производителя и эксплуатационщиков - собственника, портовых служб и пр. Они смотрят на скобу, послужившую причиной гибели груза и экипажа и думают кого назовёт судья ударив молотком по столу.
Цитата Сообщение от Zirak Посмотреть сообщение
Стандарт ясно говорит, что такое выражение. И ясно говорит, что результат может быть не определён, в то время как выражение определено всегда.
Дайте-ка текст. Если вы говорите верно, то имеет смысл говорить о корректных и некорректных выражениях.
Но в теме речь идёт о gvalue. Это концепция относится к результату выражения или к выражению. Если к выражению, - синтаксической конструкции (сущность времени компиляции - узком смысле), то как можно говорить о определяемости вычислениями (процесс времени выполнения) - имея ввиду то, что компилятор как вы сами говорите - понятия не имеет о том определено ли вычисление?
Ещё раз. gvalue, это выражение или результат вычисления определяемого выражением (определяющим вычисление )?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2020, 21:25

C++ expressions - rvalue, glvalue, prvalue, xvalue, lvalue, а также rvalue reference: что есть что?
Доброго времени суток, не понимаю до конца деление С++ - выражений (приложение 1). Lvalue вроде просто - всё, от чего можно брать адрес. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru